如何实现基于Win32控制台创建窗口

 我来答
就烦条0o
2017-04-13 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46489
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
#include<stdio.h>
#include<windows.h>
//窗口过程函数
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hDc;
char str[64]="阿浪网易博客 http://blog.163.com/wenxianliang08@126/";
switch(message)
{
case WM_PAINT:
hDc=BeginPaint(hwnd,&ps);
TextOut(hDc,100, 100, str, strlen(str));
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
break;
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, //当前运行实例的句柄
HINSTANCE hPrevInstance, //先前实例的句柄,基于Win32开发,默认为NULL
LPSTR lpCmdLine, //命令行
int nCmdShow //窗口显示模式
)
{
char szClassName[64]="阿浪博客(窗口类)"; // 初始化窗口类的名称
WNDCLASS wndclass; //定义窗口类结构体 变量
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground= (HBRUSH)GetStockObject(DKGRAY_BRUSH); //灰色画刷
wndclass.hCursor=LoadCursor(NULL, IDC_ARROW) ; //加载标准光标
wndclass.hIcon=LoadIcon(NULL, IDI_APPLICATION) ; //加载标准图标
wndclass.hInstance=hInstance;
wndclass.lpfnWndProc=WndProc ;
wndclass.lpszClassName=szClassName;
wndclass.lpszMenuName=NULL; // 菜单设置为NULL
wndclass.style=CS_HREDRAW|CS_VREDRAW;
if(!RegisterClass(&wndclass)) // 注册所初始化的窗口类
{
MessageBox(NULL,"窗口类注册失败!","消息提示",MB_OK);
return 1;
}
HWND hwnd;
char WindowName[64]="温先良(窗口名)"; // 窗口名
hwnd=CreateWindow(
szClassName,
WindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
500,400,
NULL,
NULL,
hInstance,
NULL
); // 创建所注册的窗口类
if(!hwnd)
{
MessageBox(NULL, "窗口创建失败", "消息提示", MB_OK);
return 1;
}
ShowWindow(hwnd, SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg;
while(GetMessage(&msg, hwnd, 0, 0)) // 从消息队列里获取消息
{
TranslateMessage(&msg); // 消息转换
DispatchMessage(&msg); // 消息发送到窗口过程函数
}
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式