我用C语言创建了一个按纽 编译无错,运行时按纽不显示
分别用了WS_VISIBLE 和ShowWindow()都没效果
这是怎么回事?还望赐教.

解决方案 »

  1.   

    呵呵 不好意思 这是代码
    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {   
         static HWND hwndchild; 
         switch (message)                  
        {
            case WM_CREATE:
                
                hwndchild = CreateWindow("button1","确定",
                WS_CHILD|WS_VISIBLE|BS_DEFPUSHBUTTON,
                100,200,100,50,
                hwnd,(HMENU)1,
                ((LPCREATESTRUCT) lParam)->hInstance, NULL);
                    
                
                return 0;         case WM_DESTROY:
                PostQuitMessage (0);       
                break;
            default:                      
                return DefWindowProc (hwnd, message, wParam, lParam);
        }    return 0;
    }
      

  2.   

    如果创建预定义窗口,第一个参数(窗口类名)应该是"BUTTON"而不是"BUTTON1",如果是自定义窗口,则首先需要登记窗口类才能创建窗口
      

  3.   

    switch   (message)                                     
            { 
                    case   WM_CREATE: 
                            
                            hwndchild   =   CreateWindow("button1","确定", 
                            WS_CHILD ¦WS_VISIBLE ¦BS_DEFPUSHBUTTON, 
                            100,200,100,50, 
                            hwnd,(HMENU)1, 
                            ((LPCREATESTRUCT)   lParam)-> hInstance,   NULL); 
                                    
                            
                            return   0;   
                    case   WM_COMMAND:
                         wmId    = LOWORD(wParam); 
    wmEvent = HIWORD(wParam); 
                         switch(wmID)
                         {
                         case ID_BUTTON1:      //你怎么的也的响应WM_COMMAND消息阿
                              MessageBox(NULL,"我是新人","Tip",MB_OK); 
                               break;
                         case ID_OTHER:
                            break;
                         }
                         break;
                    case   WM_DESTROY: 
                            PostQuitMessage   (0);               
                            break; 
                    default:                                             
                            return   DefWindowProc   (hwnd,   message,   wParam,   lParam); 
            } 
      

  4.   

    谢谢楼上 问题解决了 我这是预定义窗口那如果我想再加一个按钮,我该怎样做呢 是否还用"BUTTON"做类名?
      

  5.   

    hwndchild = CreateWindow("button","确定", WS_CHILD ¦WS_VISIBLE ¦BS_DEFPUSHBUTTON,   
                100,200,100,50,
                hwnd,(HMENU)1, ((LPCREATESTRUCT)lParam)->hInstance,NULL);   
     
      

  6.   

    一样的,所有按钮窗口类名都是BUTTON,继续创建去