SDK编程模板

#include<Windows.h>

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nShowCmd)
{
	static TCHAR szAPPName[] = TEXT("MyWindows");
	HWND hwnd;
	MSG msg;
	WNDCLASS wndclass;

	wndclass.style = CS_HREDRAW | CS_VREDRAW;
	wndclass.hInstance = hInstance;
	wndclass.lpfnWndProc = WndProc;
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION);
	wndclass.hCursor = LoadCursor(NULL,IDC_ARROW);
	wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
	wndclass.lpszClassName = szAPPName;
	wndclass.lpszMenuName = NULL;

	if(!RegisterClass(&wndclass))
	{
		MessageBox(NULL,TEXT("这个程序需要在 windows NT 下菜能执行!"),TEXT("错误"),MB_OK | MB_ICONERROR);
		return 0;
	}

	hwnd = CreateWindow(szAPPName,TEXT("Windows编程练习"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);

	ShowWindow(hwnd,nShowCmd);

	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_PAINT:
		hdc = BeginPaint(hwnd,&ps);
		GetClientRect(hwnd,&rect);
		DrawText(hdc,TEXT("This is my first window !"),-1,&rect,DT_VCENTER | DT_CENTER | DT_SINGLELINE);
		EndPaint(hwnd,&ps);
		return 0;

	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;

	default:
		return DefWindowProc(hwnd,message,wparam,lparam);

	}
}

  

时间: 2024-11-10 13:59:22

SDK编程模板的相关文章

Python 多进程多线编程模板

一.Python 多进程多线程原理介绍 1. Python 全局解释器锁GIL a) Python的全局解释器锁GIL是互斥锁,能够防止本机多个线程一次执行Python字节码:由于CPython的内存管理在线程级别是不安全的(内存泄露),所以这个全局解释器锁是必须的.每个Python进程只能申请使用一个GIL锁,因此Python的多线程虽然是并发的但不能并行处理.Python的解释器每次只能执行一个线程,待GIL锁释放后再执行下一个线程,这样线程轮流被执行. b) Python2.x里,GIL的

linux pthread多线程编程模板

pthread_create() 创建线程,pthread_join()让线程一直运行下去. 链接时要加上-lpthread选项. pthread_create中, 第三个参数为线程函数,定义如下: void * heartbeat_thread() { ... } 下面是main.c : #include <pthread.h> pthread_t thread[MAX_THREAD_NUM]; pthread_mutex_t cache_mutex; pthread_mutex_t var

C++编程模板2

C++编程模板2 1 #include <iostream> 2 using namespace std; 3 4 /* 5 6 */ 7 int main(){ 8 int ans; 9 printf("%d\n",ans); 10 return 0; 11 }

海康SDK编程指南(C#二次开发版本)

海康SDK编程指南 目前使用的海康SDK包括IPC_SDK(硬件设备),Plat_SDK(平台),其中两套SDK都需单独调用海康播放库PlayCtrl.dll来解码视频流,返回视频信息和角度信息.本文仅对视频监控常用功能的使用进行说明,其它未实现功能请参看设备网络SDK使用手册和播放库编程指南V7.2. IPC_SDK编程指南 (一)    SDK的引用 由于IPC_SDK没有SDK安装程序,所以需手工把下面图表中的DLL放入Debug或者Release文件夹的根目录下供程序调用,或者加入系统环

MapReduce 编程模板编写【分析网站基本指标UV】程序

1.网站基本指标的几个概念 PV: page view 浏览量 页面的浏览次数,用户每打开一次页面就记录一次. UV:unique visitor 独立访客数 一天内访问某站点的人数(以cookie为例) 但是如果用户把浏览器cookie给删了之后再次访问会影响记录. VV: visit view 访客的访问次数 记录所有访客一天内访问了多少次网站,访客完成访问直到浏览器关闭算一次. IP:独立ip数 指一天内使用不同ip地址的用户访问网站的数量. 2.编写MapReduce编程模板 Drive

AutoCAD二次开发(2020版)--4,使用ARX向导创建编程模板(框架)--

手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导. 在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序. 本节的程序的需求是,接收CAD用户的输入. 首先,打开VS2017,新建项目 在左边的树形目录里依次选择 Visual  C++    -->  Autodesk 然后在窗口中间选择 ARX/DBX Project For AutoCAD 2020 点击确定 这里可能遇到一些状况导致点击确定后无法进入下一步, 有可能是本教程开头介

C#编程の模板

C#泛型编程已经深入人心了.为什么又提出C#模板编程呢?因为C#泛型存在一些局限性,突破这些局限性,需要使用C#方式的模板编程.由于C#语法.编译器.IDE限制,C#模板编程没有C++模板编程使用方便,但是,仍然可以解决一些问题. 下面先看C#泛型编程的两个限制: (1)类型约束问题. C#泛型的类型约束是个很严重的问题. 假设需要写一个泛型方法,这个方法有2个参数,然后方法返回结果是这两个参数的和. 这样的泛型方法无法直接实现.因为Byte,Int32等等并没有公共接口. 没有公共接口,但又想

泛函编程—模板函数_类模板

函数业务逻辑一样,只是函数参数类型不同函数模板的本质:类型参数化——泛型编程 语法: template <typename T> template <class T1,class T2>多个参数类型 类型 函数名(形式参数表) { 语句序列: } 函数模板基础: template是告诉C++编译器,开始泛型编程,看到T,不要随便报错 template <typename T>//一个模板 void myswap(T& a, T& b) { T c; c

(一)Win消息机制,SDK编程基础

一,基本概念 SDK:软件开发工具包(缩写:SDK.外语全称:Software Development Kit) API:应用程序接口 WINAPI:Windows平台下的系统调用,包含 windows.h 窗口:父窗口和子窗口,客户区和非客户区 句柄:结构体变量,窗口句柄 :HWND,图标句柄:HICO 消息队列 消息 窗口过程函数 main() WinMain()  // WINAPI  入口地址  二,winAPI窗口程序 1.定义入口函数Win Main() 2.创建一个窗口 a),设计