win32程序

原创 2013年12月03日 23:29:06
#include <windows.h>
#include <stdio.h>
#include <tchar.h>

LRESULT CALLBACK WinYisProc(HWND hwnd,
							UINT uMsg,
							WPARAM wParam,
							LPARAM lParam);
int WINAPI WinMain
	(
	HINSTANCE hInstance,
	 HINSTANCE hPrevInstance,
	 LPSTR lpCmdLine,
	 int nCmdShow
	 )
{
	WNDCLASS wndcls;
	wndcls.cbClsExtra=0;
	wndcls.cbWndExtra=0;
	wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
	wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
	wndcls.hIcon=LoadIcon(NULL,(LPCWSTR)IDI_ERROR);
wndcls.hInstance = hInstance;
	wndcls.lpfnWndProc=WinYisProc;
	wndcls.lpszClassName=_T("h");
	wndcls.lpszMenuName=NULL;
	wndcls.style=CS_HREDRAW | CS_VREDRAW;
	RegisterClass(&wndcls);
	 
	HWND hwnd;
	hwnd=CreateWindow(_T("h"),_T("tjjjj"),WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);

	ShowWindow(hwnd,SW_SHOWNORMAL);
	UpdateWindow(hwnd);

	MSG msg;
	while( GetMessage(&msg,hwnd,0,0) )
	{
	
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return 0;
}
LRESULT CALLBACK WinYisProc(
						   HWND hwnd,
						   UINT uMsg,
						   WPARAM wParam,
						   LPARAM lParam
						   )
{
	switch( uMsg )
	{
	case WM_CHAR:
		char szChar[20];
		sprintf(szChar,"char is %d",wParam);
		MessageBox(hwnd,(LPCWSTR)szChar,_T("yis"),0);
		break;
	case WM_LBUTTONDOWN:
		MessageBox(hwnd, _T("mouse clicked"), _T("message"), 0);
		HDC hdc;
		hdc = GetDC(hwnd);
		TextOut(hdc, 0, 50, _T("我是个快乐的青年"), strlen("我是个快乐的青年"));
		break;
	case WM_PAINT:
		HDC hDC;
		PAINTSTRUCT ps;
		hDC=BeginPaint(hwnd,&ps);
		TextOut(hDC,0,0,_T("yisyisyis"),strlen("yisyisyis"));
		EndPaint(hwnd,&ps);
		break;
	case WM_CLOSE:
		if(IDYES==MessageBox(hwnd,(LPCWSTR)"是否真的结束?",(LPCWSTR)"yis",MB_YESNO))
		{
			DestroyWindow(hwnd);
		}
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hwnd,uMsg,wParam,lParam);
	}
	return 0;


}

相关文章推荐

如何让WIN32应用程序支持MFC类库

我们在调用一个控制台程序时一直都有DOS黑框闪烁一下,很多时候我们都不希望出现那个黑框,因为那样给人感觉特别不好,但是如果是控制台程序的话又是无法避免的。那是不是就没办法了呢,当然不是,我们可以选择在...
  • dyzhen
  • dyzhen
  • 2014年04月23日 14:39
  • 693

使用Win32 API 实现MDI程序

http://www.codeproject.com/KB/winsdk/Sigma.aspx  使用Win32 API 实现MDI程序  介绍     这篇文章讲解了如何使用Win32...
  • dreamcs
  • dreamcs
  • 2011年07月15日 12:38
  • 2902

在Win32 console平台下创建窗体应用程序

过程如下:      (1)设计窗体类      (2)注册窗体类      (3)创建窗体      (4)显示窗体和更新窗体      (5)消息循环      (6)窗口过程(又称回掉函数) 代...

win32程序启动的过程和启动速度的优化

我们在做大型客户端软件的时候,一个重要的指标就是程序的启动速度,特别是冷启动。 所谓冷启动也就是指系统启动以后,第一次打开程序。如果要减少程序的启动速度,就要了解程序的启动过程。 首先我们看看程序...

C#通过WIN32 API 获取外部程序sysListview的值和TreeView的值

C#通过WIN32 API 获取外部程序sysListview的值   using System.Runtime.InteropServices; public const uint L...

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

问题: 原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: ...
  • dddxxxx
  • dddxxxx
  • 2017年05月17日 15:44
  • 850

<Win32 API> 钩子程序的实现

原文地址:Win32环境下代码注入与API钩子的实现 1. 主要点 挂API钩子分为四步:1. 查找并打开宿主进程,2. 将注入体装入宿主进程中运行,3. 用伪装函数替换目标API,4. 执行伪装...

在VS2008创建win32应用程序的步骤

1)新建一个解决方案Solu4,在
  • sanqima
  • sanqima
  • 2014年07月02日 21:31
  • 1226

得到Java程序的WIN32窗口句柄(转)

我们知道C++的每个窗体都对应着一个句柄HWND,通过这个句柄我们可以对这个窗口以及它的资源进行各种操作,比如让它前端显示等。那么操作系统给Java编写的窗体(Frame或者JFrame的对象或者子类...
  • dusin
  • dusin
  • 2013年04月25日 10:40
  • 4843

有关Libssh2的Win32程序开发中遇到的若干问题的汇总 .

有关Libssh2的Win32程序开发中遇到的若干问题的汇总              前不就,在工作中编写了一个应用libssh2开源库的win32控制台应用程序,libssh2是一个开源的c/c...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:win32程序
举报原因:
原因补充:

(最多只允许输入30个字)