• <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);
            }

             

            欧美粉嫩小泬久久久久久久 | 蜜桃麻豆WWW久久囤产精品| 久久99国产亚洲高清观看首页| 色偷偷偷久久伊人大杳蕉| 久久精品国产精品亚洲精品| 99久久这里只精品国产免费| 亚洲中文字幕无码久久精品1 | 性欧美丰满熟妇XXXX性久久久| 欧美日韩久久中文字幕| 久久精品成人免费网站| 久久影视综合亚洲| 蜜臀av性久久久久蜜臀aⅴ| 久久精品国产99久久丝袜| 久久精品国产精品亚洲精品| 久久久WWW免费人成精品| 久久精品中文字幕无码绿巨人 | 久久精品嫩草影院| 无码人妻精品一区二区三区久久 | 久久久中文字幕日本| 99久久精品日本一区二区免费| 欧美粉嫩小泬久久久久久久 | 久久夜色精品国产亚洲av| 久久中文娱乐网| 久久97久久97精品免视看秋霞| 久久久无码一区二区三区 | 国产成人精品久久免费动漫| 囯产极品美女高潮无套久久久| 无码任你躁久久久久久老妇App| 国内精品久久久久久久coent| 久久精品国产免费| 99久久精品这里只有精品 | 欧美麻豆久久久久久中文| 一级做a爰片久久毛片看看| 久久久久久免费视频| 久久精品无码专区免费青青| 国产精品久久久久久久久| 国产精品熟女福利久久AV| 久久AV无码精品人妻糸列| 精品一区二区久久| 久久一区二区三区免费| 久久久久久久久无码精品亚洲日韩 |