| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1336 人关注过本帖
标题:关于创建普通按钮问题,为什么不能正常显示按钮
只看楼主 加入收藏
Mycr
Rank: 1
等 级:新手上路
帖 子:203
专家分:0
注 册:2006-9-18
收藏
 问题点数:0 回复次数:10 
关于创建普通按钮问题,为什么不能正常显示按钮

case WM_CREATE:
//创建普通按钮
hWndPush=CreateWindow("pro1",
"普通按钮",
BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE,
x,y,
240,25,
hWnd,
(HMENU)IDB_PUSHBUTTON,
hInst,
NULL);

可能是什么原因

搜索更多相关主题的帖子: 按钮 
2006-12-07 09:22
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 
可能是应该把倒数第三个参数设置为NULL吧

2006-12-07 10:24
Mycr
Rank: 1
等 级:新手上路
帖 子:203
专家分:0
注 册:2006-9-18
收藏
得分:0 

#include "windows.h"
#include "pro2.h"

long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
HWND hWndMain,hWndPush,hWndDefPush;
HINSTANCE hInst;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MSG Msg;
if(!InitWindowsClass(hInstance))
return FALSE;
if(!InitWindows(hInstance,nCmdShow))
return FALSE;
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}

//消息处理函数
long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
static int x=50,y=30;
switch(iMessage)
{
case WM_CREATE:
//创建普通按钮
hWndPush=CreateWindow("pro1",
"普通按钮",
BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE,
x,y,
240,25,
hWnd,
(HMENU)IDB_PUSHBUTTON,
hInst,
NULL);
//创建默认按钮控件子窗口
hWndDefPush=CreateWindow("pro1",
"默认按钮",
BS_DEFPUSHBUTTON|WS_CHILD|WS_VISIBLE,
x,y+30,
240,25,
hWnd,
(HMENU)IDB_DEFPUSHBUTTON,
hInst,
NULL);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd,iMessage,wParam,lParam);
}
return 0;
}

//初始化窗口类
BOOL InitWindowsClass(HINSTANCE hInstance)
{
WNDCLASS WndClass;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,"END");
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="pro1";
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW|CS_VREDRAW;
return RegisterClass(&WndClass);
}

//初始化窗口
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
HWND hWnd;
hWnd=CreateWindow("pro1",
"pro1",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
if(!hWnd)
return FALSE;
hWndMain=hWnd;
hInst=hInstance;
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}

改了还是不行啊

[此贴子已经被作者于2006-12-12 11:01:26编辑过]


2006-12-08 09:13
Mycr
Rank: 1
等 级:新手上路
帖 子:203
专家分:0
注 册:2006-9-18
收藏
得分:0 
还请大家帮我看看哈

2006-12-08 15:16
Mycr
Rank: 1
等 级:新手上路
帖 子:203
专家分:0
注 册:2006-9-18
收藏
得分:0 

是不是代码有问题?


2006-12-11 09:28
radcat
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:306
专家分:45
注 册:2006-9-12
收藏
得分:0 
hWndPush=CreateWindow("BUTTON", "按钮", WS_VISIBLE|WS_CHILD,0,0,50,20,
hWnd, (HMENU)ID_bta1, hInst, NULL);
ShowWindow(hWndPush,SW_SHOW);

2006-12-11 12:05
Mycr
Rank: 1
等 级:新手上路
帖 子:203
专家分:0
注 册:2006-9-18
收藏
得分:0 

非常感谢,谢谢你,不过我试了一下,还是不行

pro2.h的代码是:

#define IDB_PUSHBUTTON 10
#define IDB_DEFPUSHBUTTON 11
#define IDB_RADIOBUTTON 12
#define IDB_AUTORADIOBUTTON 13
#define IDB_CHECKBOX 14
#define IDB_AUTOCHECKBOX 15
#define IDB_GROUPBOX 16
#define IDB_GROUPBUTTON 17

[此贴子已经被作者于2006-12-12 10:59:36编辑过]


2006-12-11 16:15
zzydeai
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-11-27
收藏
得分:0 
楼主可以把你的主函数一起贴出来?

试着做一个顶级黑客或者伟大的企业家
2006-12-11 16:26
Mycr
Rank: 1
等 级:新手上路
帖 子:203
专家分:0
注 册:2006-9-18
收藏
得分:0 
以下是引用zzydeai在2006-12-11 16:26:52的发言:
楼主可以把你的主函数一起贴出来?

什么意思啊?


2006-12-12 10:41
radcat
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:306
专家分:45
注 册:2006-9-12
收藏
得分:0 
框架有问题,用win32api向导直接生成框架(选第三项),把我给你那句写在程序相同的位置.注意那个ID号,也可以先把它设为空

2006-12-12 14:58
快速回复:关于创建普通按钮问题,为什么不能正常显示按钮
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022690 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved