win32 api实现简单的消息窗口示例_C 语言

复制代码 代码如下:

#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("HelloWin");
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,TEXT("The hello program"),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_CREATE:
 PlaySound(TEXT("hellowin.wav"),NULL,SND_FILENAME|SND_ASYNC);
 return 0;

case WM_PAINT:
 hdc=BeginPaint(hwnd,&ps);

 GetClientRect(hwnd,&rect);

 DrawText(hdc,TEXT("HELLO WORLD!"),-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);
}

时间: 2024-11-02 07:03:20

win32 api实现简单的消息窗口示例_C 语言的相关文章

win32使用openfilename浏览文件窗口示例_C 语言

代码如下: 复制代码 代码如下: OPENFILENAME ofn;WCHAR* szFile = new WCHAR[512];WCHAR* szFileTitle = new WCHAR[512];memset(&ofn, 0, sizeof(ofn));memset(szFile, 0, sizeof(WCHAR)*512);memset(szFileTitle, 0, sizeof(WCHAR)*512); ofn.lStructSize = sizeof(ofn);ofn.hwndOw

C++获取任务栏打开程序窗口示例_C 语言

复制代码 代码如下: // File: OpenProgramOnTaskbar.h #pragma once#include <vector> struct TaskInfo {    // 程序名称    CString strProgramName;     // 窗口句柄    HWND hWnd;}; class TaskbarInfo{public:    // 回调函数    static BOOL CALLBACK EnumWindowProc(HWND hWnd, LPARA

C++、python和go语言实现的简单客户端服务器代码示例_C 语言

工作中用到了C/S模型,所做的也无非是给服务器发数据,但开发阶段会遇到程序自身的回环测试,需要用到简单的服务端以便验证数据发送的正确性. 写软件用C++,跑测试用python,这段时间也刚好看go语言,所以都要有demo.以下三组程序实现的功能相同,这里一起做下总结. 一.C++实现 Boost.Asio是一个跨平台的C++库,它用现代C++方法为网络和底层I/O程序提供了一致的异步I/O模型. 为了跨平台,我用boost库实现,具体如下. 服务端代码: 复制代码 代码如下: /*      F

枚举窗口句柄后关闭所有窗口示例_C 语言

复制代码 代码如下: #include BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM IParam);int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){EnumWindows(EnumWindowsProc,0);//将窗口句柄传给回调函数处理return 0;}

win32 api实现2048游戏示例_C 语言

自学的win32编程,写了一个win32 API版2048,自己摸索着写的,按上下左右箭头开始游戏 复制代码 代码如下: #include <windows.h>#include <stdlib.h>#include <stdio.h>#include <ctime>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);//全局操作数组int arr[4][4] = { { 0, 0, 0, 0 }, {

VC++实现选择排序算法简单示例_C 语言

本文以一个非常简单的实例说明VC++选择排序算法的实现方法,对n个记录进行n-1趟简单选择排序,在无序区中选取最小记录. 具体实现代码如下: #include<iostream> using namespace std; //简单选择排序 void SelectSort(int r[ ], int n) { int i; int j; int index; int temp; for (i=0; i<n-1; i++) //对n个记录进行n-1趟简单选择排序 { index=i; for

Win32应用程序(SDK)设计原理详解_C 语言

一般来说所谓的Win32应用程序开发,就是在C语言的层面上,直接使用Win32 API(Application Programming Interface:系统开放出来,给程序员使用的接口.)来开发Windows应用程序或者系统程序.虽然现在直接用Win32 API开发应用程序的人已经不多了,但是深入理解Windows系统程序设计原理,仍然是成为Windows开发高手的必经之路. 所谓的Win32,其实是一个API规范,与UNIX系统编程接口标准POSIX是相对应的.下面是进行直接的WIN32

C++实现简单的职工信息管理系统_C 语言

功能主模块描述 模块一:增加人员函数Add():增加职工基本信息. 模块二:删除人员函数Delete():删除指定的职工的基本信息以及薪酬. 模块三:修改人员函数Modify():修改指定的职工基本信息. 模块四:查询职工信息函数Search():查询指定的职工信息以及薪酬. 模块五:排序职工信息函数Sort():职工信息排序功能实现 模块六:基础数据设置函数Set():设置五类职位的基本薪酬. 模块七:数据存盘,载入函数Save()以及Load():储存职工基本信息,薪酬以及五类职位的基本薪酬

简单的socket编程入门示例_C 语言

功能简单实现client输入内容发送到server端输出 复制代码 代码如下: #include <stdio.h>#include <iostream>#include <winsock2.h>#pragma comment(lib, "ws2_32.lib")using namespace std;int main() { // 初始化 Winsock. WSADATA wsaData; int iResult = WSAStartup( MAK