Win32最简单的程序
- #include<tchar.h>
- #include<stdio.h>
- #include<windows.h>
- LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
- int WINAPI WinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPSTR lpCmdLine,
- int nCmdShow)
- {
- WNDCLASS wndcls;
- wndcls.cbClsExtra = ;
- wndcls.cbWndExtra = ;
- wndcls.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
- wndcls.hCursor = LoadCursor(NULL,IDC_ARROW);
- wndcls.hIcon = LoadIcon(NULL,IDI_APPLICATION);
- wndcls.hInstance = hInstance;
- wndcls.lpfnWndProc = WinSunProc;
- wndcls.lpszClassName = _T("sunxin2006");
- wndcls.lpszMenuName = NULL;
- wndcls.style = CS_HREDRAW | CS_VREDRAW;
- RegisterClass(&wndcls);
- HWND hwnd = CreateWindow(_T("sunxin2006"),_T("helloworld"),WS_OVERLAPPEDWINDOW,
- ,,,,NULL,NULL,hInstance,NULL);
- ShowWindow(hwnd,SW_SHOW);
- UpdateWindow(hwnd);
- MSG msg;
- while(GetMessage(&msg,NULL,,)>)
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }
- VOID OnCreate(HWND hwnd,WPARAM wParam,LPARAM lParam)
- {
- int scrWidth,scrHeight;
- RECT rect;
- //获得屏幕尺寸
- scrWidth = GetSystemMetrics(SM_CXSCREEN);
- scrHeight = GetSystemMetrics(SM_CYSCREEN);
- //取得窗口尺寸
- GetWindowRect(hwnd,&rect);
- //重新设置rect里的值
- rect.left = (scrWidth-rect.right)/;
- rect.top = (scrHeight-rect.bottom)/;
- //移动窗口到指定的位置
- SetWindowPos(hwnd,HWND_TOP,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW);
- }
- LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
- {
- switch(uMsg)
- {
- case WM_CHAR:
- char szChar[];
- sprintf_s(szChar,_T("char code is %d(%c)"),wParam,(char)(wParam));
- MessageBox(hwnd,szChar,_T("char"),);
- break;
- case WM_LBUTTONDOWN:
- MessageBox(hwnd,_T("mouse clicked"),_T("mouse"),);
- HDC hdc;
- hdc = GetDC(hwnd);
- TextOut(hdc,,,_T("程序员之家"),_tcslen(_T("程序员之家"))); ReleaseDC(hwnd,hdc);
- break;
- case WM_CREATE:
- OnCreate(hwnd,wParam,lParam);
- break;
- case WM_DESTROY:
- PostQuitMessage();
- break;
- default:
- return DefWindowProc(hwnd,uMsg,wParam,lParam);
- }
- return ;
- }
注意:需要设置多字符集,不然编译无法通过。在项目出右击属性。常规->字符集->选择多字符集。
Win32最简单的程序的更多相关文章
- VS中空项目、win32项目、控制台程序的区别(转)
空项目,大多数想单纯创建c++工程的新同学,打开vs后很可能不知道选择创建什么工程,这时候请相信我,空项目是你最好的选择.因为空工程不包含任何的源代码文件,接下来你只需要在相应的源代码文件夹和头文件文 ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- 用python开发简单ftp程序
根据alex老师视频开发的简单ftp程序,只能实现简单的get功能 ftp客户端程序: #!/usr/bin/env python #_*_ coding:utf-8 _*_ import socke ...
- 关于SIGSLOT的一个简单的程序
废话少说直接看代码即可,这只是一个简单的程序,可以帮我们简单地明白SIGSLOT是怎么回事.至于深入研究自己去百度吧. #include "sigslot.h" using nam ...
- 关于《数据格式修改》的简单应用程序(C语言)
关于<数据格式修改>的简单应用程序(C语言) 至亲爱的博友: 大家好,好久不见了.由于博主还是一名大学在校生,不可避免的需要和指导教师共同完成一些项目,因此前一段时间暂时停止了博客的更新. ...
- 创建Win32图形界面应用程序
没有什么比创建一个Win32图形界面应用程序能让Win32汇编初学者更兴奋的了! 然而,对于像我这样没有代码便会陷入困境的人来说,看到下面的代码总能让人为之一振,百余行的代码使得Win32GUI编程并 ...
- 简单购物车程序(Python)
#简单购物车程序:money_all=0tag=Trueshop_car=[]shop_info={'apple':10,'tesla':100000,'mac':3000,'lenovo':3000 ...
- 基于C语言libvirt API简单小程序
libvirt API简单小程序 1.程序代码如下 #include<stdio.h> #include<libvirt/libvirt.h> int getDomainInf ...
- 图解简单C程序的运行时结构
程序在内存中的存储分为三个区域,分别是动态数据区.静态数据区和代码区.函数存储在代码区,全局变量以及静态变量存储在静态数据区,而在程序执行的时候才会在动态数据区产生数据.程序执行的本质就是代码区的指令 ...
随机推荐
- 开源的多行字符串工具: 在JS中整段地写HTML
这样看来ES6的多行字符模板可能就不需要了-- 通过这个你可以整段整段地在JS中写HTML.SQL了. 示例 之前你得这样写 var str = '' +'<!doctype html>' ...
- 网线切割&切绳子
题目描述 Wonderland居民决定举行一届地区性程序设计大赛.仲裁委员会志愿负责这次赛事并且保证会组织一次有史以来最公正的比赛.为此,所有参赛者的电脑和网络中心会以星状网络连接,也就是说,对每个参 ...
- Weblogic补丁升级操作手冊
1.查看Weblogic版本号 方法一 [weblogic@Weblogic201 ~]$ cd /home/weblogic/Oracle/Middleware/wlserver_10.3/serv ...
- Chrome资源嗅探器应用
http://hi.baidu.com/thankyouanyway/item/5230a49a7665848959146142 在网上转转,经常会发现一些好视频,但是往往找不到下载地址,或者需要安装 ...
- 【CV论文阅读】Going deeper with convolutions(GoogLeNet)
目的: 提升深度神经网络的性能. 一般方法带来的问题: 增加网络的深度与宽度. 带来两个问题: (1)参数增加,数据不足的情况容易导致过拟合 (2)计算资源要求高,而且在训练过程中会使得很多参数趋向于 ...
- [JavaEE] Bootstrapping a JavaEE Application
To bootsrap the application use the following Maven archetype: mvn -DarchetypeGroupId=org.codehaus.m ...
- Eclipse改动Project的文件夹位置
Eclipse打开时会要求指定一个workspace, 在这个workspace中能够创建多个相关的或无关的Project, 这些Project的文件夹位置信息存储在: <path to wor ...
- 还原对于server失败 备份集中的数据库备份与现有数据库不同
还原对于server失败 备份集中的数据库备份与现有数据库不同 今天在SQL Server 2008 R2中还原一个数据库备份,遇到错误.还原对于server失败 备份集中的数据库备份 ...
- Redis缓存数据库安全加固指导(一)
背景 在众多开源缓存技术中,Redis无疑是目前功能最为强大,应用最多的缓存技术之一,参考2018年国外数据库技术权威网站DB-Engines关于key-value数据库流行度排名,Redis暂列第一 ...
- linux RHEL 修改hostname 不需要重启机器
1. 修改/etc/sysconfig/network 中的hostname HOSTNAME=newhostname 运行命令起作用: /etc/rc.d/rc.sysinit 2. 修改/ect/ ...