hur.cn - 华软网

 热门搜索

win32 application 如何创建子窗口

  作者:未知    来源:网络    更新时间:2011/4/16
RT
---华软 网友回答---
CreateWindow
---华软网友回复---
CreateWindow(Ex) 如果你只需要创建对话框能够用DialogBox...
---华软网友回复---
你什么类型的子窗口呢?
---华软网友回复---
比如主窗口的某项菜单项被单击时,出现子窗口,这时当鼠标在子窗口区域内时,就由子窗口的窗口函数举行命令响应,鼠标出现在子窗口外区域时,由主窗口的窗口函数举行命令响应
---华软网友回复---
WM_COMMAND命令,响应菜单点击。
WM_MOUSEMOVE,或WM_MOUSEHOVER、WM_MOUSELEAVE,_TrackMouseEvent();
---华软网友回复---
C++">
static HWND create_window(int w, int h)
{
    WNDCLASS wc;
    HINSTANCE hInstance = GetModuleHandle(NULL);
    HWND hwnd;
    RECT rect;
    wc.style = 0 ;
    wc.lpfnWndProc = (WNDPROC)WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = NULL;
    wc.hIcon = NULL;
    wc.hCursor = LoadCursor(hInstance, IDC_ARROW);
    wc.hbrBackground = NULL;
    wc.lpszMenuName =  NULL;
    wc.lpszClassName = "Test Window";
    
    if(!RegisterClass(&wc))
    {
        /* already registred! */
    }
    rect.left=100;
    rect.top=100;
    rect.right=rect.left+w;
    rect.bottom=rect.top+h;
    if (!AdjustWindowRect(&rect,WS_OVERLAPPEDWINDOW|WS_VISIBLE /*WS_CAPTION WS_TILED|WS_BORDER*/,FALSE)){
        MessageBox(NULL,"AdjustWindowRect failed.","Error",MB_OK);
    }
    hwnd=CreateWindow("Test Window", "Test window", 
        WS_OVERLAPPEDWINDOW /*WS_THICKFRAME*/ | WS_VISIBLE ,
        CW_USEDEFAULT, CW_USEDEFAULT, rect.right-rect.left,rect.bottom-rect.top,
                                                    NULL, NULL, hInstance, NULL);
    if (hwnd==NULL){
MessageBox(NULL,"Fail to create test window","Error",MB_OK);
    }
    return hwnd;
}
     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。