#include <windows.h>
#pragma comment(lib,"WINMM.LIB") //是一条编译器指令,是给告诉编译器你要链接一些东西,然后在后面的comment里面指明是什么东西
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow){
static TCHAR szAppName[]=TEXT("HelloWin");
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
wndclass.style=CS_HREDRAW|CS_VREDRAW;//CS 窗口类别样式
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//加载图标供程序使用 IDI 图示ID
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);//加载鼠标光标供程序使用 IDC 游标ID
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//取得一个图形对象(在这个例子中,是取得绘制窗口背景的画刷对象)
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
if(!RegisterClass(&wndclass)){// 为程序窗口注册窗口类别
MessageBox(NULL,TEXT("This program requires Windows NT Upper!"),szAppName,MB_ICONERROR);// 显示消息框 MB 消息框
return 0;
}
//根据窗口类别建立一个窗口
hwnd=CreateWindow(szAppName,
TEXT("HelloWin"),
WS_OVERLAPPEDWINDOW,//WS 窗口样式
CW_USEDEFAULT,//CW 建立窗口
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd,iCmdShow);//在屏幕上显示窗口
UpdateWindow(hwnd);//指示窗口自我更新
while(GetMessage(&msg,NULL,NULL,0)){//从消息队列中取得消息
TranslateMessage(&msg);//转译某些键盘消息
DispatchMessage(&msg);//将消息发送给窗口消息处理程序
}
return msg.lParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch(message){ //WM 窗口消息
case WM_CREATE:
PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);//播放一个声音文件 SND 声音
return 0;
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps);//开始绘制窗口
GetClientRect(hwnd,&rect);//取得窗口显示区域的大小
DrawText(hdc,TEXT("Hello Window!"),-1,&rect,DT_SINGLELINE|DT_CENTER|DT_VCENTER);//显示字符串 DT 绘制文字
EndPaint(hwnd,&ps);//结束绘制窗口
return 0;
case WM_DESTROY:
PostQuitMessage(0);//在消息队列中插入一个「退出程序」消息
return 0;
default:
return DefWindowProc(hwnd,message,wParam,lParam);//执行内定的消息处理
}
}
分享到:
相关推荐
然而,当开发Windows应用程序时,我们通常会使用Windows API提供的`WinMain`函数作为入口点,这是因为Windows系统有自己的应用程序模型。`WinMain`函数的定义如下: ```cpp int APIENTRY WinMain( HINSTANCE ...
在编程世界里,Windows应用程序开发通常涉及到一个特殊的入口点函数——`WinMain`。这个函数在Windows程序设计中起着至关重要的作用,特别是在使用Microsoft Foundation Classes (MFC)库进行开发时。`WinMain`与传统...
在QT中,`main`和`WinMain`函数是程序的入口点,它们各自在不同的上下文中起作用。 在传统的C++应用程序中,`main`函数是程序执行的起点。然而,在Windows操作系统上,Windows API通常使用`WinMain`函数作为应用...
解决 VC6.0 中运行错误 unresolved external symbol _WinMain@16 在使用 VC6.0 进行编程时,可能会遇到一个常见的错误:unresolved external symbol _WinMain@16。这是一个链接错误,出现这种错误的原因是因为 VC...
在VC++编程环境中,WinMain函数是Windows应用程序的入口点,与C++标准库中的main函数有所不同。在创建Windows桌面应用程序时,我们通常会用到WinMain而不是main,因为它是Windows API的核心部分,用于初始化窗口类、...
`WinMain`函数是Windows API中的一个入口点,用于替代传统的`main`函数,主要用于创建具有窗口的Windows应用程序。在本教程中,我们将深入探讨如何使用VC++通过`WinMain`来建立窗口。 首先,了解`WinMain`函数。`...
在Windows编程中,`WinMain`函数是应用程序的入口点,尤其在开发基于Windows操作系统的桌面应用程序时。这个函数替代了通常在其他操作系统或库中常见的`main`函数。`WinMain`函数提供了与Windows消息循环和窗口过程...
最简单的winmain程序 #include #include LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { HDC hdc; switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,...
### vc中error LNK2001 resolved external symbol _WinMain@16的解决方法 #### 一、问题描述 在使用Visual C++ (VC) 编译C++项目时,可能会遇到`error LNK2001: unresolved external symbol _WinMain@16`的错误...
程序中隐藏WinMain函数,当成是头文件包含进来,我们开发就不需要改动WinMain函数, CWinApp 和CDialog类在SDK中模拟实现,程序会进入我写的InitInstance,该函数里面负责显示窗口,窗口类里面有窗口过程...
在Windows编程中,WinMain函数是程序的入口点,它替代了C/C++中的main函数。这个标题"自己写的带有菜单的WinMain函数"表明我们要讨论的是如何在WIN32应用程序中创建一个具有用户界面(UI)的程序,具体来说,就是...
常用的WinMain写法: 只创建窗口 无多余注释 代码90行 VS2010直接用
vc中的winmain函数的用法与理解 int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int ...
在Windows环境下,一个C++应用程序的入口点不是我们常见的`main()`函数,而是`WinMain()`函数。这个特殊的功能点是"WinMain.rar"文件所涵盖的核心知识。 `WinMain()`函数在Windows程序设计中起着至关重要的角色,它...
WinMain的编写
在Windows编程领域,"Windows框架"是构建图形用户界面(GUI)应用程序的基础,而`WinMain`函数则是这个框架的核心入口点。这篇文章将深入探讨`WinMain`函数以及它在Windows程序中的作用。 Windows应用程序不同于...
在MFC程序中,虽然表面上看不到传统的WinMain函数,但其实WinMain仍然是程序的入口点。 标题中的"MFC程序中的WinMain函数"指的是在MFC应用程序中,WinMain函数是如何被使用的。通常,WinMain函数是Win32 API应用...
标题"WinMain_Vc_"暗示了我们将探讨的话题是围绕使用VC++进行Windows程序开发的核心概念,特别是涉及到`WinMain`函数、窗口句柄、消息队列以及回调函数。 首先,`WinMain`函数是Windows应用程序的入口点,类似于...
在编程领域,尤其是在Windows应用程序开发中,`WinMain`函数是一个关键的入口点,它相当于控制台程序中的`main`函数。本主题将深入探讨`WinMain`函数的使用,以及与`mouse`相关的钩子(hook)技术,这些都是在VC++...