主题:如何用WIN32API创建标签
digital1010
[专家分:1430] 发布于 2005-05-27 10:33:00
如何用WIN32API创建一个标签,
高手指点.
回复列表 (共4个回复)
沙发
zlhhz [专家分:710] 发布于 2005-05-27 11:46:00
CreateWindow(
"Static", // predefined class
"caption", // window title
SS_CENTER,
0, 0, 50, 12, // size
hwnd, // parent window
(HMENU) ID_CHILD, // control ID
(HINSTANCE) GetWindowLong(hwnd, GWL_HINSTANCE),
NULL); // pointer not needed
板凳
digital1010 [专家分:1430] 发布于 2005-05-27 12:16:00
没用呀!
详细点好吗?
3 楼
zlhhz [专家分:710] 发布于 2005-05-27 16:44:00
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
TCHAR szAppName[]=TEXT("Label");
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style =CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc =WndProc;
wndclass.cbClsExtra =0;
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance;
wndclass.hIcon =LoadIcon (NULL, IDI_APPLICATION);
wndclass.hCursor =LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground =(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szAppName;
if (!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("This program requires Windows NT!"),szAppName,MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);
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)
{
switch (message)
{
case WM_CREATE:
CreateWindow("Static",
"caption",
SS_CENTER | WS_CHILD | WS_VISIBLE,
10,10,50,20,
hwnd,
NULL,
(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),
NULL);
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
}
4 楼
zlhhz [专家分:710] 发布于 2005-05-27 16:49:00
当为标签设置ID时:
#define ID_LABEL 101 //label ID
CreateWindow("Static",
"caption",
SS_CENTER | WS_CHILD | WS_VISIBLE,
10,10,50,20,
hwnd,
(HMENU)ID_LABEL,
(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE),
NULL);
我来回复