我在用VC 进行SDK 编程..
现我想通过CREATEWINDOW() 来创建一个BUTTON 子窗口,但不指定它的父窗口,我的意思是
想试试子窗口能否单独存在 .
代码如下:
运行后看不见按钮,但通过工作管理员知道该程式已存在内存中,这说明创建应该存功了,但为何看不到呢?#include <windows.h>#define IDB_PUSHBUTTON   10
#define IWND             11HINSTANCE hinst ;
char  lpstrclassname1[] = "BUTTON" ; //预定义窗口类名
int  ncheckboxst ;
HWND hwndpush,hwnddefpush,hwndradio,hwndautoradio,hwndcheckbox,
hwndautocheckbox,hwndgroupbox ;  //定义控件子窗口句柄
LRESULT CALLBACK wndproc(HWND,UINT,WPARAM,LPARAM) ;
int  WINAPI WinMain(HINSTANCE hinstance,
HINSTANCE hprevinstance,
LPSTR     lpcmdline,
int       nshowcmd )
{
HWND  hwnd ;
MSG   msg  ;
/*WNDCLASS  wndclass ;
char lpszclassname[] = "控件" ;
char lpsztitle[] = "子窗口按钮示例" ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH) ;
wndclass.hCursor = LoadCursor(hinstance,IDC_ARROW) ;
wndclass.hIcon = LoadIcon(hinstance,IDI_APPLICATION) ;
wndclass.hInstance = hinstance ;
wndclass.lpfnWndProc = wndproc ;
wndclass.lpszClassName = lpszclassname ;
wndclass.lpszMenuName = NULL ;
wndclass.style = 0 ;
         
if (! RegisterClass(&wndclass))
{
MessageBeep(0) ;
return false ;
};
*/
hwnd = CreateWindow("BUTTON",  ///此处改为"BUTTON"
lpsztitle,
BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hinstance,
NULL );
hinst = hinstance ;
ShowWindow(hwnd,nshowcmd) ;
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) // 
{
int x = 50,y = 50 ; //按钮控件起始坐标 
switch(message)
{
case WM_CREATE :
//创建按钮子窗口
hwndpush = CreateWindow(lpstrclassname1,
"这是一个按钮,按我吧!",
BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE,
x,y,
240,25,
hwnd,
(HMENU)IDB_PUSHBUTTON, //创建指定的ID
hinst,
NULL);
break ;
case WM_COMMAND :
switch(LOWORD(wparam))
{
case IDB_PUSHBUTTON :
SetWindowText(hwndpush,"你已按下了该按钮") ;
break ;
};
break ;
case WM_DESTROY :
PostQuitMessage(0) ;
break ;
default :
return DefWindowProc(hwnd,message,wparam,lparam) ;
};
return 0 ;
};