hWnd = CreateWindow(IDS_APP_TITLE, IDS_APP_TITLE, WS_VISIBLE,
0,30, 240, 320,
NULL, NULL, hInstance, NULL);创建了窗口,怎么在上面弄个 按钮,点按钮 退出要求能设置 按钮的 位置
求求了
我Q 895000080BOOL InitInstance(
HINSTANCE hInstance,
int nCmdShow
)
{
HWND hWnd = NULL;
g_hInst = hInstance; // Store instance handle in our global variable
//If it is already running, then focus on the window
hWnd = FindWindow(IDS_APP_TITLE, IDS_APP_TITLE);
if (NULL != hWnd)
{
SetForegroundWindow (hWnd);
return FALSE;
}
MyRegisterClass(hInstance, IDS_APP_TITLE);
RECT rect;
GetClientRect(hWnd, &rect);
// create a full-screen window for the browser control
hWnd = CreateWindow(IDS_APP_TITLE, IDS_APP_TITLE, WS_VISIBLE,
0,30, 240, 320,
NULL, NULL, hInstance, NULL);
if (NULL == hWnd)
{
return FALSE;
}
// Hide all the Shell parts and show the window in full screen mode.
//SHFullScreen(hWnd, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON); //ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
0,30, 240, 320,
NULL, NULL, hInstance, NULL);创建了窗口,怎么在上面弄个 按钮,点按钮 退出要求能设置 按钮的 位置
求求了
我Q 895000080BOOL InitInstance(
HINSTANCE hInstance,
int nCmdShow
)
{
HWND hWnd = NULL;
g_hInst = hInstance; // Store instance handle in our global variable
//If it is already running, then focus on the window
hWnd = FindWindow(IDS_APP_TITLE, IDS_APP_TITLE);
if (NULL != hWnd)
{
SetForegroundWindow (hWnd);
return FALSE;
}
MyRegisterClass(hInstance, IDS_APP_TITLE);
RECT rect;
GetClientRect(hWnd, &rect);
// create a full-screen window for the browser control
hWnd = CreateWindow(IDS_APP_TITLE, IDS_APP_TITLE, WS_VISIBLE,
0,30, 240, 320,
NULL, NULL, hInstance, NULL);
if (NULL == hWnd)
{
return FALSE;
}
// Hide all the Shell parts and show the window in full screen mode.
//SHFullScreen(hWnd, SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON); //ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
}
btn.Create(_T("你的按钮显示信息"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(0,0,100,30), hwnd, 110);
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数声明
char szClassName[]="windowclass"; //窗口结构体的名称
char szAppTitle[]="使用API创建窗口"; //窗口的标题
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam , INT nCmdShow) //WinMain()函数的定义
{
HWND hMainWnd; //窗口句柄
MSG msg; //消息结构体
WNDCLASS winclass; //窗口结构体
if(!hPrevInstance)//判断是否已有应用程序的实例在运行,给窗口结构体的数据成员赋值来 规 定所要建立的窗口的特征
{
winclass.style=CS_HREDRAW|CS_VREDRAW; //窗口风格
winclass.lpfnWndProc=WndProc; //窗口的消息处理函数
winclass.cbClsExtra=0; //窗口类无扩展
winclass.cbWndExtra=0; //窗口实例无扩展
winclass.hInstance=hInstance; //当前应用程序实例句柄
winclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标
winclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
winclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景色为白色
winclass.lpszMenuName=NULL;//无窗口菜单
winclass.lpszClassName=szClassName; //给窗口结构体命名
RegisterClass(&winclass); //注册窗口
}
//下面用CreateWindow()函数来建立窗口,并返回所建立窗口的句柄
hMainWnd=CreateWindow(
szClassName, //窗口结构体的名称
szAppTitle, //窗口的标题
WS_OVERLAPPEDWINDOW, //窗口风格为可重叠窗口
//下面四个参数代表窗口左上角x,y坐标和窗口的宽度与高度,都使用缺省值
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
//下面参数分别为父窗口句柄、窗口菜单句柄、应用程序实例句柄和附加参数
NULL,NULL,hInstance,NULL);
ShowWindow(hMainWnd,SW_SHOWNORMAL); //显示窗口
UpdateWindow(hMainWnd); //更新窗口
//下面用While()循环来建立消息循环
while(GetMessage(&msg,NULL,0,0)) //获取消息,填充msg结构体
{
TranslateMessage(&msg); //翻译键盘消息
DispatchMessage(&msg); //向窗口函数发送消息,让窗口函数处理
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hMainwnd, UINT message, WPARAM wParam, LPARAM lParam) //窗口函数的定义
{
HDC hdc; //设备描述表
PAINTSTRUCT ps; //刷新区域
RECT rect; //矩形结构
char messageleft[]="按下了鼠标左键!"; //单击鼠标左键,消息框将显示的提示内容
switch(message) //判断消息标识符
{
case WM_PAINT: //窗口重绘
{
hdc=BeginPaint(hMainwnd,&ps);
GetClientRect(hMainwnd,&rect); //获取客户区区域
rect.bottom=rect.top+50;
DrawText(hdc,TEXT("使用Windows API创建Windows窗口程序!"),-1,&rect,DT_SINGLELINE| DT_CENTER|DT_VCENTER); //在客户区中央输出文字
EndPaint(hMainwnd,&ps);
break;
}
case WM_LBUTTONDOWN:
{
MessageBox(GetFocus(),messageleft,"使用API创建窗口",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_DESTROY://关闭应用程序窗口时发出的消息
{
PostQuitMessage(0); //发出WM_QUIT消息,结束应用程序
return 0;
}
default :
break;
}
return DefWindowProc(hMainwnd,message,wParam,lParam); //其它消息交给Windows做默认处理
}这个虽不是对话框窗体,希望对你有所提示……
WM_SIZE
MoveWindow
#include <stdio.h>
LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
); //窗口回调函数声明
int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // pointer to command line
int nCmdShow // show state of window
) //Windows程序入口函数
{
WNDCLASS wndcls; //设计一个窗口类
wndcls.cbClsExtra=0; //类的附加内存
wndcls.cbWndExtra=0; //窗口附加内存
wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //画刷句柄,GetStockObject函数获取句柄
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); //光标句柄
wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION); //图标句柄
wndcls.hInstance=hInstance; //应用程序实例号
wndcls.lpfnWndProc=WinSunProc; //类型窗口过程函数(回调函数)
wndcls.lpszClassName="zhuzhonghua"; //窗口名
wndcls.lpszMenuName=NULL; //菜单名
wndcls.style=CS_HREDRAW | CS_VREDRAW; //窗口类型,这时设定为水平重画与垂直重画
RegisterClass(& wndcls); //注册一个窗口类 HWND hwnd; //定义窗口句柄,保存窗口标识
hwnd=CreateWindow("zhuzhonghua","武汉科技大学计算机科学与技术学院",
WS_OVERLAPPEDWINDOW/* & ~WS_MAXIMIZEBOX*/,100,100,600,400,NULL,NULL,hInstance,NULL); //创建一个窗口 ShowWindow(hwnd,SW_SHOWNORMAL);//显示一个窗口,第一个参数为要显示窗口句柄,第二个参数为显示状态,如最大化,最小化,正常显示
UpdateWindow(hwnd); //更新一个窗口 MSG msg; //定义消息结构体变量
while(GetMessage(&msg,NULL,0,0)) //用GetMessage从消息队列中获取消息
{
TranslateMessage(&msg); //对取到的消息队进行转换,并将新消息投递到消息队列中
DispatchMessage(&msg); //将收到的消息传递到窗口回调函数进行处理
} //消息循环
return 0;
}LRESULT CALLBACK WinSunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg) //判断是何种消息
{
case WM_CLOSE: //窗口关闭消息
if(IDYES==MessageBox(hwnd,"是否真的结束?","zhuzhonghua",MB_YESNO))
{
DestroyWindow(hwnd); //销毁窗口,发送WM_DESTROY消息
}
break;
case WM_DESTROY:
PostQuitMessage(0); //投递一个WM_QUIT消息到现成的消息队列中,GetMessage获取到WM_QUIT消息,返回零值,即为假,while消息循环终止
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam); //返回缺省窗口过程
}
return 0;
}比六楼简单点的,自己试试吧