我的意思是创建一个没有标题,没有菜单,空白得像一张白纸的窗口。我记得在VB里只要简单地设置一下窗口Border的属性就可以了。我对照MSDN写了这样一段代码:
HWND hMainWnd; // 主窗口
WNDCLASSEX wcex;wcex.style = 0;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = NULL;
wcex.hCursor = NULL;
wcex.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "";
wcex.hIconSm = NULL;RegisterClassEx(&wcex);hMainWnd = CreateWindow( "", "", 0, 0, 0, 100, 100, NULL, NULL, hInstance, NULL );if ( hMainWnd == NULL )
{
MessageBox( NULL, "CreateWindow() failed!", "DXTEST02", MB_ICONERROR|MB_OK );
return -1;
}
但是代码不工作,每次都告诉我“CreateWindow() failed!”。

解决方案 »

  1.   

    也不至于什么风格都不指定啊#include <windows.h>LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                        PSTR szCmdLine, int iCmdShow)
    {
    static TCHAR szAppName[] = TEXT ("BlankWindow") ;
    HWND         hwnd ;
    MSG          msg ;
    WNDCLASS     wndclass ;

    wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc   = WndProc ;
    wndclass.cbClsExtra    = 0 ;
    wndclass.cbWndExtra    = 0 ;
    wndclass.hInstance     = hInstance ;
    wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
    wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
    wndclass.lpszMenuName  = NULL ;
    wndclass.lpszClassName = szAppName ;

    if (!RegisterClass (&wndclass))
    {
    MessageBox (NULL, TEXT ("This program requires Windows NT!"), 
    szAppName, MB_ICONERROR) ;
    return 0 ;
    }
    hwnd = CreateWindow (szAppName,                  // window class name
    TEXT ("A Blank Window Program"), // window caption
    WS_OVERLAPPEDWINDOW,        // window style
    CW_USEDEFAULT,              // initial x position
    CW_USEDEFAULT,              // initial y position
    CW_USEDEFAULT,              // initial x size
    CW_USEDEFAULT,              // initial y size
    NULL,                       // parent window handle
    NULL,                       // window menu handle
    hInstance,                  // program instance handle
    NULL) ;                     // creation parameters

    ShowWindow (hwnd, iCmdShow) ;
    UpdateWindow (hwnd) ;

    while (GetMessage (&msg, NULL, 0, 0))
    {
    TranslateMessage (&msg) ;
    DispatchMessage (&msg) ;
    }
    return msg.wParam ;
    }LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    switch (message)
    {
    case WM_DESTROY:
    PostQuitMessage (0) ;
    return 0 ;
    }
    return DefWindowProc (hwnd, message, wParam, lParam) ;
    }
      

  2.   

    你不应该用WS_OVERLAPPEDWINDOW,而应用WS_POPUP就可以了。
      

  3.   

    类名不能为空
    而且还必须是一个已经注册成功的类的类名用VC的APPWIZARD创建一个HELLO,WORLD工程,学习一下就明白了:)
      

  4.   

    把CAPTION选项求非  就可以了   那些常数真的好难记  很苦恼
      

  5.   

    MSDN里对WS_POPUP的描述:
    WS_POPUP
    Creates a pop-up window. This style cannot be used with the WS_CHILD style. 什么叫pop-up window啊?