问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样用C语言编写出窗体程序?

发布网友 发布时间:2022-04-23 14:16

我来回答

2个回答

热心网友 时间:2023-08-13 12:45

#include <windows.h>

//Function prototype.
int WINAPI WinMain(HINSTANCE,HINSTANCE ,LPSTR ,int);
LRESULT CALLBACK MainWndProc(HWND ,UINT ,WPARAM,LPARAM);

InitApplication(HINSTANCE);
InitInstance(HINSTANCE,int);

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect;

switch(nMsg)
{
case WM_COMMAND:
{
hdc = GetDC((HWND)lParam);
GetClientRect ((HWND)lParam, &rect) ;
DrawText(hdc,"HOHO",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
ReleaseDC((HWND)lParam,hdc);
}
break;
case WM_PAINT:
{
hdc = BeginPaint(hwnd,&ps);
GetClientRect (hwnd, &rect) ;
DrawText(hdc,"Hello Word",-1,&rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd,&ps);
}
break;
//按键
case WM_KEYDOWN:

if(wParam == VK_ESCAPE)
SendMessage(hwnd,WM_CLOSE,0,0);

break;
case WM_CHAR:
switch(wParam)
{
case 'w':
MessageBox(hwnd,"UP","KeyBorad Input",MB_OK);
break;
case 's':
MessageBox(hwnd,"DOWN","KeyBorad Input",MB_OK);
break;
case 'a':
MessageBox(hwnd,"LEFT","KeyBorad Input",MB_OK);
break;
case 'd':
MessageBox(hwnd,"RIGHT","KeyBorad Input",MB_OK);
break;
}
break;

//关闭
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;

default:
return DefWindowProc(hwnd,nMsg,wParam,lParam);
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInStance,
LPSTR lpCmdLine,int nCmdShow)
{
MSG msg;

if(!InitApplication(hInstance))
{
MessageBox(NULL,"InitApplication Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}
if(!InitInstance(hInstance,nCmdShow)){
MessageBox(NULL,"InitInstance Failed","Error!",MB_ICONEXCLAMATION | MB_OK);
return FALSE;
}

while(GetMessage(&msg,(HWND) NULL,0,0)>0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

InitApplication(HINSTANCE hInstance)
{
WNDCLASS wc;

wc.style = CS_DBLCLKS;
wc.lpfnWndProc = MainWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL,IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = "MainWClass";
return RegisterClass(&wc);
}

InitInstance(HINSTANCE hInstance,int nCmdShow){
HWND hwnd;
HWND hwndCloseButton;
hwnd = CreateWindow(
"MainWClass",
"Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
(HWND)NULL,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);

if(!hwnd)
return FALSE;

hwndCloseButton = CreateWindow(
"BUTTON",
"CLOSE",
WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
100,
100,
100,
80,
hwnd,
(HMENU)NULL,
hInstance,
(LPVOID)NULL);

if(!hwndCloseButton)
return FALSE;

ShowWindow(hwnd,nCmdShow);
UpdateWindow(hwnd);
return TRUE;
}

热心网友 时间:2023-08-13 12:45

简单而最正确的回答就是:
请用VC!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 C语言怎么写窗口化程序 iPhone X, XS, XS max 运营商显示在哪里? 怎样使用visual studio 2010以C语言编一个简单的窗口程序 用C语言怎么创建新窗口(编译器VC6.0)? 如何利用C语言编写窗口程序,即有界面的 c语言,如何编写窗口程系。 用C语言编写windows窗体程序,怎么创建按钮以及怎么添加按钮的触发事件... c语言如何设置窗口 番茄土豆鸡肉的做法 C语言如何创建窗口 菜花番茄炒鸡肉的做法,菜花番茄炒鸡肉怎么做 怎么用c语言做一个界面? 如何用C语言编写一个窗体应用程序? 番茄酱和鸡能做出什么菜? 用c语言怎么创建一个窗口? 番茄酱炒鸡柳,都需要准备哪些食材呢? 西红柿鸡胸肉的做法有哪些? 番茄酱烧鸡怎么做? 番茄酱鸡腿的做法,番茄酱鸡腿怎么做好吃,番茄 茄红素鸡汤的家常做法? 在gcc下怎么用c语言编出个窗口,要尽量简单 男生提分手后多久会想复合? 用C语言编写个带弹出窗口的程序 男友提出分手一个月要求复合,到底应该怎么想? iphonex被运营商锁定怎么办? 男生为什么提出分手后又主动要求复合合?完事又几天不理你 苹果x的网络变ctm怎么调回中国移动 分手后男生想复合,女生应该怎么办 苹果x11.4系统怎么更新运营商版本? 男的提分手一般多久会想复合? 我的联通号码之前在美国使用,使用的苹果X,手机一直找不到网络,怎么办... 男生提分手后,什么情况下男生想复合但不好意思开口? 男生提分手后这样是想提复合,还是别的意思? 男生分手后多久想复合? 男生提分手,之后他又找我复合 男生提分手了还有可能复合的表现 男生分手多久后会有想复合的感觉 微信语音聊天提示对方不在,是手机不在身边吗 男生提分手还有可能复合吗 在恋爱中,男生提出分手后,就很难再复合是真的吗?