当前位置:首页 » 编程语言 » c语言窗口界面

c语言窗口界面

发布时间: 2023-09-12 04:07:03

❶ 怎么用c语言做一个界面

通过调用API来创建界面:
#include<windows.h>
int
main()
{
MessageBox(NULL,"Hello
World!","C图形程序",MB_OK);
return
0;
}
linux下通过调用图形库来创建界面。

❷ 怎么用c语言做一个界面

空窗口:

#include<windows.h>
/*所有的窗口输出到这里去*/
LRESULTCALLBACKWndProc(HWNDhwnd,UINTMessage,WPARAMwParam,LPARAMlParam){
switch(Message){

/*停止后,告诉主线程停止*/
caseWM_DESTROY:{
PostQuitMessage(0);
break;
}

/*所有其他消息都使用默认程序处理*/
default:
returnDefWindowProc(hwnd,Message,wParam,lParam);
}
return0;
}
/*Win32GUI程序的主要功能:从这里开始执行*/
intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow){
WNDCLASSEXwc;/*窗口的属性结构*/
HWNDhwnd;/*"句柄"一个窗口的标识符*/
MSGMsg;/*所有消息的临时位置*/

/*修改结构和设置的东西*/
memset(&wc,0,sizeof(wc));
wc.cbSize =sizeof(WNDCLASSEX);
wc.lpfnWndProc =WndProc;/*发送消息的地方*/
wc.hInstance =hInstance;
wc.hCursor =LoadCursor(NULL,IDC_ARROW);

/*白色,COLOR_WINDOW是系统定义的颜色值,其数值是5*/
wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszClassName="WindowClass";
wc.hIcon =LoadIcon(NULL,IDI_APPLICATION);/*载入一个标准图标*/
wc.hIconSm =LoadIcon(NULL,IDI_APPLICATION);/*使用名称“A”来作为该项目图标*/

if(!RegisterClassEx(&wc)){
MessageBox(NULL,"WindowRegistrationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}

hwnd=CreateWindowEx(WS_EX_CLIENTEDGE,"WindowClass","Caption",WS_VISIBLE|WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,/*x*/
CW_USEDEFAULT,/*y*/
640,/*宽度*/
480,/*高度*/
NULL,NULL,hInstance,NULL);

if(hwnd==NULL){
MessageBox(NULL,"WindowCreationFailed!","Error!",MB_ICONEXCLAMATION|MB_OK);
return0;
}
/*
所有的输入处理和发送到窗口过程。
注意,这个块代码流,直到它接收到的东西,
所以回路不会产生不合理的高CPU使用率。
*/
while(GetMessage(&Msg,NULL,0,0)>0)/*如果没有收到任何错误…*/
{
TranslateMessage(&Msg);/*如果存在翻译关键码字符*/
DispatchMessage(&Msg);/*发送它到WndProc*/
}
returnMsg.wParam;
}

❸ 编写的C语言程序,怎样制作一个UI界面

c语言制作UI界面需要相关的UI库

如windows操作系统本身就提供了UI的接口

一个简单的示例代码如下

#include<windows.h>

LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);

intWINAPIWinMain(HINSTANCEhinstance,HINSTANCEhprevinstance,LPSTRline,intcmd)
{
staticTCHARAppName[]=TEXT("99");
HWNDhwnd;
MSGmsg;
WNDCLASSwndclass;

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=AppName;

if(!RegisterClass(&wndclass))
{
MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!"),AppName,MB_ICONERROR);
return0;
}

hwnd=CreateWindow(AppName,TEXT("九九乘法口诀表"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hinstance,
NULL);

ShowWindow(hwnd,cmd);
UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

returnmsg.wParam;
}

LRESULTCALLBACKWndProc(HWNDhwnd,UINTmessage,WPARAMwparam,LPARAMlparam)
{
HDChdc;
PAINTSTRUCTps;
RECTrect;
staticx,y;
inti,j;
intlen;
TCHARbuf[50];
TEXTMETRICtm;

switch(message)
{
caseWM_CREATE:
hdc=GetDC(hwnd);
GetTextMetrics(hdc,&tm);
x=tm.tmAveCharWidth;
y=tm.tmHeight+tm.tmExternalLeading;
ReleaseDC(hwnd,hdc);
//MessageBox(NULL,TEXT("CreateSuccessed!"),TEXT("Successed"),MB_OK);
//PlaySound(TEXT("hello.wav"),NULL,SND_FILENAME|SND_ASYNC);
return0;

caseWM_PAINT:
hdc=BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
//DrawText(hdc,TEXT("HelloWorld!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);
//TextOut(hdc,rect.right/2-(strlen("HelloWorld!")/2)*x,rect.bottom/2-y/2,TEXT("HelloWorld!"),12);
for(i=1;i!=10;++i)
{
for(j=1;j!=i+1;++j)
{
len=wsprintf(buf,TEXT("%dx%d=%-4d"),j,i,i*j);
TextOut(hdc,j*len*x,i*y,buf,len);
}
}

EndPaint(hwnd,&ps);
return0;

caseWM_DESTROY:
PostQuitMessage(0);
return0;
}

returnDefWindowProc(hwnd,message,wparam,lparam);
}

上面是一个打印windows下拥有窗口界面的九九乘法口诀表的c语言程序代码


同样的c语言也会有其它的UI库

比如Gtk,Gtk是可移植的UI库

可以使用它在Linux、windows包括mac等等操作系统上做ui程序设计

一个简单的示例代码如下

#include<gtk/gtk.h>

intmain(intargc,char**argv)
{
GtkWidget*win;
GtkWidget*label;
inti,j;
GString*str;

gtk_init(&argc,&argv);

win=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_position(GTK_WINDOW(win),GTK_WIN_POS_CENTER);
g_signal_connect(G_OBJECT(win),"delete-event",G_CALLBACK(gtk_main_quit),NULL);

str=g_string_new(NULL);

for(i=1;i<=9;++i)
{
for(j=1;j!=i+1;++j)
g_string_append_printf(str,"%dx%d=%-4d",j,i,i*j);

g_string_append(str," ");
}

label=gtk_label_new(str->str);
gtk_container_add(GTK_CONTAINER(win),label);

gtk_widget_show_all(win);
gtk_main();

g_string_free(str,TRUE);
return0;
}

❹ C语言窗口界面如何美化

首先修改背景字体颜色 :
颜色属性由两十六进制数字指定 -- 第背景第二个则是前景,
每个数字可以为以下任何值之一
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色

❺ 如何用C语言编程出可视化界面

//调用api函数创建窗口

//示例:

#include <windows.h>


LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//窗口过程函数


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

{

static TCHAR szAppName[] = TEXT("MyWindows");//定义窗口类名

HWND hwnd;//窗口句柄

MSG msg; //

WNDCLASS wndclass; //窗口类


wndclass.style = CS_HREDRAW | CS_VREDRAW;//指定窗口类型,各种“类风格”(详见下方↓)可以使用按位或操作符组合起来

wndclass.lpfnWndProc = WndProc;//指定窗口过程(必须是回调函数)

wndclass.cbClsExtra = 0;//预留的额外空间,一般为 0

wndclass.cbWndExtra = 0;//预留的额外空间,一般为 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("这个程序需要在 Windows NT 才能执行!"), szAppName, MB_ICONERROR);

return 0;

}


hwnd = CreateWindow(szAppName, //创建窗口

TEXT("windows"),

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)//回调函数

{

HDC hdc;

PAINTSTRUCT ps;

RECT rect;


switch (message)

{

case WM_PAINT:

hdc = BeginPaint(hwnd, &ps);

GetClientRect(hwnd, &rect);

DrawText(hdc, TEXT("第一个C语言窗口程序!"), -1, &rect,

DT_SINGLELINE | DT_CENTER | DT_VCENTER);

EndPaint(hwnd, &ps);

return 0;


case WM_DESTROY:

PostQuitMessage(0);

return 0;

}


return DefWindowProc(hwnd, message, wParam, lParam);

}

❻ C语言如何做图形界面

/* 以下代码不含丝毫MFC,在Visual C++ 6.0测试通过,能够出现一个正规的Windows窗口 */
#pragma comment(linker,"/SUBSYSTEM:Windows /ENTRY:mainCRTStartup")
#include <windows.h>
/* 使类名成为全局变量 */
TCHAR szClassName[ ] = TEXT("WindowsApp");
/* 这个函数由Windows内部函数DispatchMessage()调用 */
LRESULT CALLBACK WindowProcere (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;
switch (message) /* 处理信息 */
{
case WM_DESTROY:
PostQuitMessage (0); /* 发送WM_QUIT到消息队列 */
break;
case WM_PAINT:
hdc = BeginPaint (hWnd, &ps) ;
GetClientRect (hWnd, &rect) ;
DrawText (hdc, TEXT("Hello, Windows NT!"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;
EndPaint (hWnd, &ps) ;
break ;
default: /* 不处理的消息 */
return DefWindowProc (hWnd, message, wParam, lParam);
}
return 0;
}
/* 下面是主函数 */
int main ( void )
{
HINSTANCE hThisInstance = GetMoleHandle(NULL) ;
int nFunsterStil = SW_SHOW ;
HWND hWnd; /* 这是窗口的句柄 */
MSG messages;/* 应用程序的消息保存在这里 */
WNDCLASSEX wincl;/* 窗口类的数据结构 */
/* 窗口结构 */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcere;/* 这个函数由Windows操作系统调用 */
wincl.style = CS_DBLCLKS; /* 获取双击指令 */
wincl.cbSize = sizeof (WNDCLASSEX);
/* 使用默认图标和鼠标指针 */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* 没有菜单 */
wincl.cbClsExtra = 0;/* 窗口类后面没有多余的字节 */
wincl.cbWndExtra = 0;/* 结构或者窗口实例 */
/* 使用窗口的默认颜色作为窗口的背景色 */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
/* 注册窗口类。如果注册失败,那么就退出程序 */
if (!RegisterClassEx (&wincl))
return 0;
/* 窗口类已被注册。创建它的程序 */
hWnd = CreateWindowEx (
0,
szClassName, /* 类名 */
TEXT("Windows App"), /* 窗口标题栏的文字 */
WS_OVERLAPPEDWINDOW, /* 默认窗口 */
CW_USEDEFAULT, /* 窗口左上角的位置 */
CW_USEDEFAULT, /* 窗口右下角的位置 */
544, /* 窗口宽度(以“像素”位单位) */
375, /* 窗口高度(以“像素”位单位) */
HWND_DESKTOP,/* 窗口是桌面的子窗口 */
NULL,/* 该窗口无菜单 */
hThisInstance, /* 程序实例的句柄 */
NULL /* 没有窗口创建的数据 */
);
/* 显示窗口 */
ShowWindow (hWnd, nFunsterStil);
/* 重绘窗口 */
UpdateWindow(hWnd);
/* 运行消息循环。循环到GetMessage()函数返回0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* 把虚拟信息翻译成字符信息 */
TranslateMessage(&messages);
/* 发送信息到窗口过程 */
DispatchMessage(&messages);
}
/* 返回PostQuitMessage()函数的返回值 */
return messages.wParam;
}



❼ 如何用C语言做一个windows应用程序窗口界面

  1. 可以使用CreateWindow函数。

    CreateWindow,Windows API宏, 在WinUser.h中根据是否已定义Unicode被分别定义为CreateWindowW和CreateWindowA,后两者又被分别定义为对CreateWindowExW和CreateWindowExA函数的调用。
    函数原型:
    HWND CreateWindow(
    LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu,
    HANDLE hlnstance,
    LPVOID lpParam);
    参数:
    详情
    lpClassName
    指向一个空结束的字符串或整型数atom。如果该参数是一个整型量,它是由此前调用theGlobalAddAtom函数产生的全局量。这个小于0xC000的16位数必须是lpClassName参数字的低16位,该参数的高位必须是0。
    如果lpClassName是一个字符串,它指定了窗口的类名。这个类名可以是任何用函数RegisterClass注册的类名,或是任何预定义的控制类名。请看说明部分的列表。
    LPWindowName
    指向一个指定窗口名的空结束的字符串指针。
    如果窗口风格指定了标题条,由lpWindowName指向的窗口标题将显示在标题条上。当使用Createwindow函数来创建控制例如按钮,选择框和静态控制时,可使用lpWindowName来指定控制文本。
    dwStyle
    指定创建窗口的风格。该参数可以是下列窗口风格的组合再加上说明部分的控制风格。风格意义:
    WS_BORDER:创建一个带边框的窗口。
    WS_CAPTION:创建一个有标题框的窗口(包括WS_BORDER风格)。
    WS_CHILD:创建一个子窗口。这个风格不能与WS_POPUP风格合用。
    WS_CHILDWINDOW:与WS_CHILD相同。
    WS_CLIPCHILDREN:当在父窗口内绘图时,排除子窗口区域。在创建父窗口时使用这个风格。
    WS_CLIPSIBLINGS:排除子窗口之间的相对区域,也就是,当一个特定的窗口接收到WM_PAINT消息时,WS_CLIPSIBLINGS 风格将所有层叠窗口排除在绘图之外,只重绘指定的子窗口。如果未指定WS_CLIPSIBLINGS风格,并且子窗口是层叠的,则在重绘子窗口的客户区时,就会重绘邻近的子窗口。
    WS_DISABLED:创建一个初始状态为禁止的子窗口。一个禁止状态的窗口不能接受来自用户的输入信息。
    WS_DLGFRAME:创建一个带对话框边框风格的窗口。这种风格的窗口不能带标题条。
    WS_GROUP:指定一组控制的第一个控制。这个控制组由第一个控制和随后定义的控制组成,自第二个控制开始每个控制,具有WS_GROUP风格,每个组的第一个控制带有WS_TABSTOP风格,从而使用户可以在组间移动。用户随后可以使用光标在组内的控制间改变键盘焦点。
    WS_HSCROLL:创建一个有水平滚动条的窗口。
    WS_ICONIC:创建一个初始状态为最小化状态的窗口。与WS_MINIMIZE风格相同。
    WS_MAXIMIZE:创建一个初始状态为最大化状态的窗口。
    WS_MAXIMIZEBOX:创建一个具有最大化按钮的窗口。该风格不能与WS_EX_CONTEXTHELP风格同时出现,同时必须指定WS_SYSMENU风格。
    WS_OVERLAPPED:产生一个层叠的窗口。一个层叠的窗口有一个标题条和一个边框。与WS_TILED风格相同。
    WS_OVERLAPPEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格的层叠窗口,与WS_TILEDWINDOW风格相同。
    WS_POPUP:创建一个弹出式窗口。该风格不能与WS_CHILD风格同时使用。
    WS_POPUPWINDOW:创建一个具有WS_BORDER,WS_POPUP,WS_SYSMENU风格的窗口,WS_CAPTION和WS_POPUPWINDOW必须同时设定才能使窗口某单可见。
    WS_SIZEBOX:创建一个可调边框的窗口,与WS_THICKFRAME风格相同。
    WS_SYSMENU:创建一个在标题条上带有窗口菜单的窗口,必须同时设定WS_CAPTION风格。
    WS_TABSTOP:创建一个控制,这个控制在用户按下Tab键时可以获得键盘焦点。按下Tab键后使键盘焦点转移到下一具有WS_TABSTOP风格的控制。
    WS_THICKFRAME:创建一个具有可调边框的窗口,与WS_SIZEBOX风格相同。
    WS_TILED:产生一个层叠的窗口。一个层叠的窗口有一个标题和一个边框。与WS_OVERLAPPED风格相同。
    WS_TILEDWINDOW:创建一个具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX风格的层叠窗口。与WS_OVERLAPPEDWINDOW风格相同。
    WS_VISIBLE:创建一个初始状态为可见的窗口。
    WS_VSCROLL:创建一个有垂直滚动条的窗口。
    X
    指定窗口的初始水平位置。对一个层叠或弹出式窗口,X参数是屏幕坐标系的窗口的左上角的初始X坐标。对于子窗口,x是子窗口左上角相对父窗口客户区左上角的初始X坐标。如果该参数被设为CW_USEDEFAULT则系统为窗口选择缺省的左上角坐标并忽略Y参数。CW_USEDEFAULT只对层叠窗口有效,如果为弹出式窗口或子窗口设定,则X和y参数被设为零。
    Y
    指定窗口的初始垂直位置。对一个层叠或弹出式窗口,y参数是屏幕坐标系的窗口的左上角的初始y坐标。对于子窗口,y是子窗口左上角相对父窗口客户区左上角的初始y坐标。对于列表框,y是列表框客户区左上角相对父窗口客户区左上角的初始y坐标。如果层叠窗口是使用WS_VISIBLE风格位创建的并且X参数被设为CW_USEDEFAULT,则系统将忽略y参数。
    nWidth
    以设备单元指明窗口的宽度。对于层叠窗口,nWidth或是屏幕坐标的窗口宽度或是CW_USEDEFAULT。若nWidth是CW_USEDEFAULT,则系统为窗口选择一个缺省的高度和宽度:缺省宽度为从初始X坐标开始到屏幕的右边界,缺省高度为从初始Y坐标开始到目标区域的顶部。CW_USEDEFAULT只对层叠窗口有效;如果为弹出式窗口和子窗口设定CW_USEDEFAULT标志则nWidth和nHeight被设为零。
    nHeight
    以设备单元指明窗口的高度。对于层叠窗口,nHeight是屏幕坐标的窗口宽度。若nWidth被设为CW_USEDEFAULT,则系统忽略nHeight参数。
    hWndParent
    指向被创建窗口的父窗口或所有者窗口的句柄。若要创建一个子窗口或一个被属窗口,需提供一个有效的窗口句柄。这个参数对弹出式窗口是可选的。Windows NT 5.0;创建一个消息窗口,可以提供HWND_MESSAGE或提供一个己存在的消息窗口的句柄。
    hMenu
    菜单句柄,或依据窗口风格指明一个子窗口标识。对于层叠或弹出式窗口,hMenu指定窗口使用的菜单:如果使用了菜单类,则hMenu可以为NULL。对于子窗口,hMenu指定了该子窗口标识(一个整型量),一个对话框使用这个整型值将事件通知父类。应用程序确定子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的。
    hlnstance
    与窗口相关联的模块实例的句柄。
    lpParam
    指向一个值的指针,该值传递给窗口WM_CREATE消息。该值通过在IParam参数中的CREATESTRUCT结构传递。如果应用程序调用CreateWindow创建一个MDI客户窗口,则lpParam必须指向一个CLIENTCREATESTRUCT结构。
    返回值:如果函数成功,返回值为新窗口的句柄:如果函数失败,返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。

  2. 例程:

    //Window.cpp:.
    #include<windows.h>
    LRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);


    intAPIENTRYWinMain(HINSTANCEhInstance,//应用程序的实例句柄,
    HINSTANCEhPrevInstance,
    LPSTRlpCmdLine,//命令行
    intnCmdShow)//显示方式
    {
    MSGmsg;
    HWNDhWnd;
    charszTitle[]="系统信息";//Thetitlebartext
    charszWindowClass[]="popMsg";//Thetitlebartext
    WNDCLASSEXwcex={0};
    wcex.cbSize=sizeof(WNDCLASSEX);//WNDCLASSEX结构体大小
    wcex.style=CS_HREDRAW|CS_VREDRAW;//位置改变时重绘
    wcex.lpfnWndProc=(WNDPROC)WndProc;//消息处理函数
    wcex.hInstance=0;//当前实例句柄
    wcex.hbrBackground=(HBRUSH)COLOR_WINDOWFRAME;//背景色
    wcex.lpszClassName=szWindowClass;//参窗口类名
    wcex.hIcon=0;//图标
    wcex.hCursor=LoadCursor(NULL,IDC_ARROW);//光标
    wcex.lpszMenuName=0;//菜单名称
    wcex.hIconSm=0;//最小化图标
    RegisterClassEx(&wcex);//注册窗口类

    hWnd=CreateWindow(szWindowClass,szTitle,WS_SYSMENU|WS_VISIBLE,//创建窗口
    CW_USEDEFAULT,CW_USEDEFAULT,400,300,NULL,NULL,0,NULL);
    if(!hWnd){
    returnFALSE;
    }

    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);

    while(GetMessage(&msg,NULL,0,0))//消息循环:
    {
    TranslateMessage(&msg);//转化虚拟按键到字符消息
    DispatchMessage(&msg);//分派消息调用回调函数
    }
    returnmsg.wParam;
    }

    LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)
    {
    PAINTSTRUCTps;
    HDChdc;
    RECTrect;
    switch(message)
    {
    caseWM_PAINT://重绘消息
    hdc=BeginPaint(hWnd,&ps);
    GetClientRect(hWnd,&rect);
    MoveToEx(hdc,10,10,0);
    SelectObject(hdc,::CreatePen(PS_SOLID,1,RGB(0xFF,0,0)));
    LineTo(hdc,100,200);
    //DrawText(hdc,szHello,strlen(szHello),&rt,DT_CENTER);
    EndPaint(hWnd,&ps);
    break;

    caseWM_CREATE:

    RegisterHotKey(hWnd,1,0,0x41);
    break;
    caseWM_HOTKEY:
    MessageBox(0,0,0,0);
    break;
    caseWM_TIMER:


    break;
    caseWM_DESTROY://窗口销毁消息
    PostQuitMessage(0);
    break;
    default:
    returnDefWindowProc(hWnd,message,wParam,lParam);
    }
    return0;
    }
热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:432
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:557
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:743
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:537
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:146
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:233
java驼峰 发布:2025-02-02 09:13:26 浏览:651
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:532
linuxadobe 发布:2025-02-02 09:09:43 浏览:212
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:726