窗口类中有一个结构体成员wndclass.lpszClassName书上说的是窗口类的文本名。是窗口类最重要的两个变量之一(另外一个是窗口过程函数指针)在创建窗口的时候用到,我觉得这个变量完全没有存在的必要啊,在创建窗口的时候直接用窗口类的变量名wndclass不可以吗,那样岂不是方便些?

解决方案 »

  1.   

    在创建窗口的时候直接用窗口类的变量名wndclass不可以吗,那样岂不是方便些?
    ========
    你要明白,所谓变量名不过是你写程序时的一个助记符,在编译之后,这些变量名就没了,比如你的变量叫mywndclass,但是编译后,这个名字就没有了。
      

  2.   

    那总有一些东西来标识吧,不然c=a+b在编译后运行的时候怎样找到a,b,c?
      

  3.   

    那总有一些东西来标识吧,不然c=a+b在编译后运行的时候怎样找到a,b,c?
    ==========
    这个建议你去看《编译原理》吧
      

  4.   

    因为winclass是要在windows系统内部中注册的,而为其起一个名字就是为了好检索标识它,就好像一个文件必须有文件名一样。
      

  5.   

    lpszClassName用来标识你的窗口类,以后创建的时候直接用你的窗口类名就可以了!!
      

  6.   

    windows系统为窗口(名)单独创建一张索引表(不知是不是这样叫)吗
      

  7.   

    嗯,大概是这样,是用RegisterClass注册winclass的。
      

  8.   

    窗口类也是分层次的,有的窗口类是系统级别的,比如button,你在任何一个应用程序中都可以用它,而有的仅是你自己的程序中能用,比如你自己建立的窗口类
      

  9.   

    MSDN:
    lpszClassName
    Pointer to a null-terminated string or is an atom. If this parameter is an atom, it must be a class atom created by a previous call to the RegisterClass or RegisterClassEx function. The atom must be in the low-order word of lpszClassName; the high-order word must be zero. 
    If lpszClassName is a string, it specifies the window class name. The class name can be any name registered with RegisterClass or RegisterClassEx, or any of the predefined control-class names. 
    The maximum length for lpszClassName is 256.
    这个成员用来保存窗口类名,这个类名可以通过任意的名称来注册通过RegisterClass或者RegisterClassEx函数,或者是先前注册好的类名。
      

  10.   

    再问个问题
    case WM_PAINT:
    hdc = BeginPaint (hwnd, &ps) ;

    GetClientRect (hwnd, &rect) ;

    DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
    EndPaint (hwnd, &ps) ;
    return 0 ;

    case WM_DESTROY:
    PostQuitMessage (0) ;
    return 0 ;
    case WM_CLOSE:
    if(MessageBox(hwnd,TEXT("Are you sure?"),TEXT("comfirm"),MB_YESNO|MB_ICONWARNING)==IDOK)
    {
    DestroyWindow(hwnd);
    }
    case WM_LBUTTONDOWN:
    MessageBox(NULL,TEXT("LBUTTONDOWN"),TEXT("ButtonDown"),MB_ICONERROR);
    return 0;
    为什么按了关闭按钮却后选择‘是’却退不出程序
      

  11.   

    case WM_PAINT:
    hdc = BeginPaint (hwnd, &ps) ;

    GetClientRect (hwnd, &rect) ;

    DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
    EndPaint (hwnd, &ps) ;
    return 0 ;

    case WM_DESTROY:
    PostQuitMessage (0) ;
    return 0 ;
    case WM_CLOSE:
    if(MessageBox(hwnd,TEXT("Are you sure?"),TEXT("comfirm"),MB_YESNO|MB_ICONWARNING)==IDOK)
    {
    DestroyWindow(hwnd);
    }
    case WM_LBUTTONDOWN:
    MessageBox(NULL,TEXT("LBUTTONDOWN"),TEXT("ButtonDown"),MB_ICONERROR);
    return 0;测试一下代码格式
      

  12.   


    case WM_PAINT:
    hdc = BeginPaint (hwnd, &ps) ;

    GetClientRect (hwnd, &rect) ;

    DrawText (hdc, TEXT ("Hello, Windows 98!"), -1, &rect,
    DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
    EndPaint (hwnd, &ps) ;
    return 0 ;

    case WM_DESTROY:
    PostQuitMessage (0) ;
    return 0 ;
    case WM_CLOSE:
    if(MessageBox(hwnd,TEXT("Are you sure?"),TEXT("comfirm"),MB_YESNO|MB_ICONWARNING)==IDOK)
    {
    DestroyWindow(hwnd);
    }
    case WM_LBUTTONDOWN:
    MessageBox(NULL,TEXT("LBUTTONDOWN"),TEXT("ButtonDown"),MB_ICONERROR);
    return 0;
      

  13.   

    case WM_CLOSE:
    if(MessageBox(hWnd,TEXT("Are you sure?"),TEXT("comfirm"),MB_YESNO|MB_ICONWARNING)==IDYES)
    {
    DestroyWindow(hWnd);
    }
    return 0;
      

  14.   

    楼上已经给出正解了    你应该判断他是否等于IDYES宏你判断错误咯。HOHO