• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            要創建一個無標題欄的窗口很簡單,使用如下代碼即可:
            HWND hwnd = ::CreateWindowEx(NULL,
                                                                    szClassName,
                                                                    “無標題欄窗口”
                                                                    //創建無標題欄窗口所要用的樣式
                                                                    WS_POPUP | WS_SYSMENU | WS_SIZEBOX,
                                                                    100, //窗口所在屏幕上的 x 坐標
                                                                    100, //窗口所在屏幕上的 y 坐標
                                                                    300, //窗口的寬度
                                                                    300, //窗口的高度
                                                                    NULL,
                                                                    NULL,
                                                                    hInstance,
                                                                    NULL)
            但是沒有標題欄的窗口不能被用戶移動,也不能比較方便地關閉.
            在 Windows下,每一個鼠標信息都是由 WM_NCHITTEST 消息產生的,這個參數包含了鼠標位置的信息,通常情況下,這個消息都交給 DefWindowProc 函數處理,這個函數會返回一個值來表示鼠標按下的部分,如果鼠標單擊窗口標題欄,處理 WM_NCHITTEST 消息的 DefWindowProc 函數會返回 HTCAPTION ,然后 Windows 會向該窗口發送 WM_NCLBUTTONDOWN 消息,如果 DefWindowProc 返回值是 HTCLIENT ,Windows 就將屏幕坐標轉化成窗戶區坐標,并且通過 WM_LBUTTONDOWN 消息傳遞給用戶,為了能在窗戶區移動窗口,必須讓 Windows 認為是在標題欄移動窗口,實現代碼如下:

             

            #include <windows.h>
             
             
            LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
             
            int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
            {
                 
            char *szClassName = "WndClass";
                 WNDCLASSEX wndclass;
                 wndclass.cbSize 
            = sizeof(wndclass);
                 wndclass.style 
            = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
                 wndclass.lpfnWndProc 
            = WndProc;
                 wndclass.cbClsExtra 
            = 0;
                 wndclass.cbWndExtra 
            = 0;
                 wndclass.hIcon 
            = ::LoadIcon(NULL,IDI_APPLICATION);
                 wndclass.hCursor 
            = ::LoadCursor(NULL,IDC_ARROW);
                 wndclass.hbrBackground 
            = (HBRUSH)::CreateSolidBrush(RGB(255,255,255));
                 wndclass.hInstance 
            = hInstance;
                 wndclass.lpszClassName 
            = szClassName;
                 wndclass.lpszMenuName 
            = NULL;
                 wndclass.hIconSm 
            = NULL;
                 
                 ::RegisterClassEx(
            &wndclass);
                 HWND hwnd 
            = ::CreateWindowEx(0,
                                                 szClassName,
                                                 
            "移動窗口",
                                                 WS_POPUP 
            | WS_SYSMENU | WS_SIZEBOX,
                                                 
            100,
                                                 
            100,
                                                 
            300,
                                                 
            300,
                                                 
            0,
                                                 
            0,
                                                 hInstance,
                                                 NULL);
                 
            if(hwnd == NULL)
                 {
                     ::MessageBox(NULL,
            "創建窗口出錯","error",MB_OK);
                     
            return -1;
                 }
                 ::ShowWindow(hwnd,nCmdShow);
                 ::UpdateWindow(hwnd);
                 MSG msg;
                 
            while(::GetMessage(&msg,NULL,0,0))
                 {
                     ::TranslateMessage(
            &msg);
                     ::DispatchMessage(
            &msg);
                 }
                 ::DeleteObject(wndclass.hbrBackground);
                 
            return msg.wParam;
            }
             
            LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wParam,LPARAM lParam)
            {
                 
            switch(msg)
                 {
                 
                 
            case WM_PAINT:
                     {
                          PAINTSTRUCT ps;
                          HDC hdc 
            = ::BeginPaint(hwnd,&ps);
                          ::EndPaint(hwnd,
            &ps);
                          
            return 0;
                     }
                 
            case WM_NCHITTEST:
                     {
                          UINT nHitTest;
                          nHitTest 
            = ::DefWindowProc(hwnd,msg,wParam,lParam);
                          
            //如果鼠標左鍵按下, GetAsyncKeyState 的返回值小于0
                          if(nHitTest == HTCLIENT && ::GetAsyncKeyState(MK_LBUTTON) < 0)
                          {
                               nHitTest 
            = HTCAPTION;
                          }
                          
            return nHitTest;
                     }
             
                 
            case WM_DESTROY:
                     {
                          ::PostQuitMessage(
            0);
                          
            return 0;
                     }
                 }
                 
            return ::DefWindowProc(hwnd,msg,wParam,lParam);
            }

             

            色综合合久久天天综合绕视看| 婷婷久久香蕉五月综合加勒比| 久久久久国色AV免费看图片| 国产精品久久久久一区二区三区| 无码精品久久一区二区三区| 久久亚洲精品无码AV红樱桃| 精品无码久久久久久久动漫| 午夜欧美精品久久久久久久| 久久99国产精品成人欧美| 蜜臀av性久久久久蜜臀aⅴ| 欧美性大战久久久久久| 成人久久综合网| 亚洲va中文字幕无码久久不卡| segui久久国产精品| 久久精品一区二区三区不卡| 国产成人综合久久精品红| 国产精品99久久久久久猫咪| 国内精品久久久久久99蜜桃| 久久亚洲熟女cc98cm| 伊人色综合九久久天天蜜桃| 久久久久久国产精品免费免费| 国产午夜精品理论片久久影视| 久久精品人人做人人爽电影| 久久免费大片| 久久久久亚洲AV综合波多野结衣| 国产一级持黄大片99久久| 久久久久久九九99精品| 久久精品国产亚洲AV无码娇色 | 日本亚洲色大成网站WWW久久| 精品精品国产自在久久高清| 97久久精品午夜一区二区| 久久A级毛片免费观看| 99久久99这里只有免费的精品| 少妇精品久久久一区二区三区 | 72种姿势欧美久久久久大黄蕉| 四虎国产精品成人免费久久| 2021国产精品久久精品| 伊人久久综合成人网| 精品国产乱码久久久久久1区2区| 国产精品久久精品| 久久久精品久久久久久|