2010-08-22 73 views

回答

5
int WINAPI WinMain(....) 
{ 
    MSG msg; 
    WNDCLASS wc={0}; 
    wc.lpszClassName="MyClass"; 
    wc.lpfnWndProc=DefWindowProc;//You MUST use your own wndproc here 
    wc.hInstance=hInstance; 
    wc.hbrBackground=(HBRUSH)(COLOR_3DFACE+1); 
    wc.hCursor=LoadCursor(NULL,IDC_ARROW); 
    if (!RegisterClass(&wc)) {/*Handle Error*/} 
    HWND hwnd; 
    hwnd=CreateWindowEx(0,wc.lpszClassName,0,WS_POPUP|WS_VISIBLE|WS_SYSMENU,9,9,99,99,0,0,0,0); 
    if (!hwnd) {/*Handle Error*/} 
    while(GetMessage(&msg,0,0,0)>0)DispatchMessage(&msg); 
    return 0; 
} 

如果你想要一个边框,你可以添加WS_BORDER或WS_DLGFRAME(不是两个)。如果您不想在任务栏中显示该窗口,请添加WS_EX_TOOLWINDOW扩展样式。

至于为什么你需要按位或样式; OR将组合所有的样式值,AND(通过窗口)用于检查设置了哪些样式。 假设我们有两个样式(WS_FOO = 1,WS_BAR = 2):

  • 1和2 = 0(二进制:01和10 = 00)
  • 1 OR 2 = 3(二进制:01 OR 10 = 11)

有关更多信息,请参阅wikipedia