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

             

            色88久久久久高潮综合影院| 伊人久久大香线蕉综合热线| 日韩久久久久久中文人妻| 久久久久久九九99精品| 久久精品嫩草影院| 久久中文字幕视频、最近更新| 人妻少妇精品久久| 久久ZYZ资源站无码中文动漫| 91精品国产91久久| 久久久久久久精品妇女99| 丰满少妇人妻久久久久久4| 国内精品伊人久久久久777| 国产一区二区精品久久| 久久人人添人人爽添人人片牛牛| 国产精品久久久久9999| 亚洲午夜无码久久久久| 久久久黄片| 青青草原综合久久| 久久精品国产亚洲AV高清热| 中文成人无码精品久久久不卡 | 亚洲综合久久夜AV | 久久成人国产精品| 亚洲国产欧美国产综合久久| 久久毛片免费看一区二区三区| 青青热久久综合网伊人| 国产精品久久久久AV福利动漫 | 久久久久国产精品嫩草影院| www.久久精品| 久久精品无码一区二区无码| 久久精品国产亚洲av麻豆图片| 久久久精品人妻无码专区不卡| 色综合久久久久网| 青青草国产成人久久91网| 精品久久久久久久| 久久精品aⅴ无码中文字字幕重口| 久久久久国产精品人妻| 狠狠色伊人久久精品综合网| 91超碰碰碰碰久久久久久综合| 色噜噜狠狠先锋影音久久| 亚洲国产精品久久66| 国产精品久久久天天影视香蕉 |