Windows编程基础 第九章 对话框 静态框 按钮 文本编辑框

本文是截图:Windows编程基础 第九章  对话框  静态框   按钮  文本编辑框

原文pdf下载地址是:http://yunpan.cn/cdeWRNyfhzLqP  访问密码 f967












//本程序用来演示无模式对话框的创建
#include "windows13.h"
#include "stdafx.h"
#include "resource.h"
#include "stdio.h"
#include "windows.h"

HINSTANCE g_hInst=NULL;

BOOL CALLBACK  DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	switch(uMsg)
	{
	case WM_SYSCOMMAND:
		switch(wParam)
		{
		case  SC_CLOSE:
			EndDialog(hWnd,1);
			break;
		}
	break;
	case WM_CREATE:
		MessageBox(NULL,TEXT("WM_CREATE"),TEXT("消息:"),MB_OKCANCEL);
		break;
	case WM_INITDIALOG:
		MessageBox(NULL,TEXT("WM_INITDIALOG"),TEXT("消息:"),MB_OKCANCEL);
		break;
	}
	return 0;
}

VOID setting(HWND hWnd)
{
	HWND hWndDialog=CreateDialog(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,DialogProc);
	ShowWindow(hWndDialog,SW_SHOW);
}

VOID OnCommand(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	int nCmd=LOWORD(wParam);//取得菜单项ID

	switch(nCmd)
	{
	case IDM_EXIT:
		PostQuitMessage(0);
		break;
	case ID_DIALOGBOX:
		setting(hWnd);
		break;
	}
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{

	switch(uMsg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_COMMAND://用来处理菜单消息
		OnCommand(hWnd,uMsg,wParam,lParam);
		break;


	}
	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

BOOL   RegisterWnd(TCHAR * pszClassName	)
{
	WNDCLASSEX  wce={0};
	wce.cbClsExtra=0;
	wce.cbSize=sizeof(wce);
	wce.cbWndExtra=0;
	wce.hbrBackground=HBRUSH(COLOR_WINDOW+1);//GetStockBrush(WHITE_BRUSH);
	wce.hCursor=NULL;
	wce.hIcon=NULL;
	wce.hIconSm=NULL;
	wce.hInstance=g_hInst;
	wce.lpfnWndProc=WndProc;
	wce.lpszClassName=pszClassName;
	wce.lpszMenuName=NULL;
	wce.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;

	ATOM   result=RegisterClassEx(&wce);
	if (result==0)
	{
		MessageBox(NULL,TEXT("窗口类注册失败!"),TEXT("窗口类注册失败!"),MB_OK);
		return FALSE;
	}
	return TRUE;
}

VOID  DisplayWindow(HWND hWnd)    
{
	ShowWindow(hWnd,SW_SHOW);
	UpdateWindow(hWnd);
}

VOID Message(HWND hWnd)
{
	HACCEL hAccel=LoadAccelerators(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	MSG  msg={0};
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateAccelerator(hWnd,hAccel,&msg);
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
}

HWND  CreateMyWindow(TCHAR *  pszClassName)
{
	//加载字符串资源
	TCHAR szText[100]=TEXT("");
	LoadString(g_hInst,IDS_STRINGMain,szText,100);
	//加载菜单资源
	HMENU hMenu=LoadMenu(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	HWND hWndNew=CreateWindowEx(0,pszClassName,szText,WS_OVERLAPPEDWINDOW|WS_THICKFRAME,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,hMenu,g_hInst,NULL);
	return hWndNew;
}


INT WINAPI  WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{

	RegisterWnd(TEXT("MyWnd"));
	HWND hWnd=CreateMyWindow(TEXT("MyWnd"));
	DisplayWindow(hWnd);
	Message(hWnd);
	return TRUE;
}


//本程序用来演示静态框
#include "windows13.h"
#include "stdafx.h"
#include "resource.h"
#include "stdio.h"
#include "windows.h"

HINSTANCE g_hInst=NULL;

VOID OnCreate(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	CreateWindowEx(0,TEXT("STATIC"),TEXT("HELLO STATIC"),SS_NOTIFY|SS_SUNKEN|WS_CHILD|WS_VISIBLE,100,100,100,100,hWnd,(HMENU)1001,g_hInst,NULL);
	CreateWindowEx(0,TEXT("STATIC"),TEXT("#135"),SS_NOTIFY|WS_CHILD|WS_VISIBLE|SS_ICON,200,200,100,100,hWnd,(HMENU)1002,g_hInst,NULL);
}

VOID OnCommand(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	int nStaicID=LOWORD(wParam);//控件ID
	int nStaticMessage=HIWORD(wParam);//控件消息
	switch(nStaicID)
	{
		case IDM_EXIT:
			PostQuitMessage(0);
		break;
		case 1001://先判断控件ID,然后在判断控件消息。
		switch(nStaticMessage)
			{
				case STN_CLICKED:
					MessageBox(NULL,TEXT("STATIC控件被单击"),TEXT("控件消息"),MB_OK);
			}
		break;
		case 1002:
			switch(nStaticMessage)
			{
			case STN_DBLCLK:
				MessageBox(NULL,TEXT("STATIC控件被双击"),TEXT("控件消息"),MB_OK);
			}
		break;
		case ID_STATICCHANGE:
			HICON hIcon=LoadIcon(g_hInst,MAKEINTRESOURCE(IDI_ICON3));
			HWND hWndCtrl=GetDlgItem(hWnd,1002);
			SendMessage(hWndCtrl,STM_SETICON,(WPARAM)(hIcon),0);
			break;
	}
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{

	switch(uMsg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_COMMAND://用来处理菜单消息
		OnCommand(hWnd,uMsg,wParam,lParam);
		break;
	case WM_CREATE:
		OnCreate(hWnd,uMsg,wParam,lParam);
		break;
	}
	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

BOOL   RegisterWnd(TCHAR * pszClassName	)
{
	WNDCLASSEX  wce={0};
	wce.cbClsExtra=0;
	wce.cbSize=sizeof(wce);
	wce.cbWndExtra=0;
	wce.hbrBackground=HBRUSH(COLOR_WINDOW+1);//GetStockBrush(WHITE_BRUSH);
	wce.hCursor=NULL;
	wce.hIcon=NULL;
	wce.hIconSm=NULL;
	wce.hInstance=g_hInst;
	wce.lpfnWndProc=WndProc;
	wce.lpszClassName=pszClassName;
	wce.lpszMenuName=NULL;
	wce.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;

	ATOM   result=RegisterClassEx(&wce);
	if (result==0)
	{
		MessageBox(NULL,TEXT("窗口类注册失败!"),TEXT("窗口类注册失败!"),MB_OK);
		return FALSE;
	}
	return TRUE;
}

VOID  DisplayWindow(HWND hWnd)    
{
	ShowWindow(hWnd,SW_SHOW);
	UpdateWindow(hWnd);
}

VOID Message(HWND hWnd)
{
	HACCEL hAccel=LoadAccelerators(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	MSG  msg={0};
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateAccelerator(hWnd,hAccel,&msg);
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
}

HWND  CreateMyWindow(TCHAR *  pszClassName)
{
	//加载字符串资源
	TCHAR szText[100]=TEXT("");
	LoadString(g_hInst,IDS_STRINGMain,szText,100);
	//加载菜单资源
	HMENU hMenu=LoadMenu(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	HWND hWndNew=CreateWindowEx(0,pszClassName,szText,WS_OVERLAPPEDWINDOW|WS_THICKFRAME,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,hMenu,g_hInst,NULL);
	return hWndNew;
}


INT WINAPI  WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
	RegisterWnd(TEXT("MyWnd"));
	HWND hWnd=CreateMyWindow(TEXT("MyWnd"));
	DisplayWindow(hWnd);
	Message(hWnd);
	return TRUE;
}

//本程序用来演示按钮
#include "windows13.h"
#include "stdafx.h"
#include "resource.h"
#include "stdio.h"
#include "windows.h"

HINSTANCE g_hInst=NULL;

VOID OnCreate(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("PushButton"),WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,0,0,100,100,hWnd,(HMENU)1001,g_hInst,NULL);//下压按钮
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("3StateButton"),WS_CHILD|WS_VISIBLE|BS_AUTO3STATE|BS_PUSHLIKE,100,100,100,100,hWnd,(HMENU)1002,g_hInst,NULL);//三态按钮
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("分组一"),WS_CHILD|WS_VISIBLE|BS_GROUPBOX,200,200,300,300,hWnd,(HMENU)3001,g_hInst,NULL);//只是起到一个边框的效果
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("选项一"),WS_CHILD|WS_VISIBLE|BS_CHECKBOX,210,230,50,50,hWnd,(HMENU)3002,g_hInst,NULL);//选项一,选项二,都可以进行选择
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("选项二"),WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,210,290,50,50,hWnd,(HMENU)3003,g_hInst,NULL);
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("A"),WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON|WS_GROUP,310,290,50,50,hWnd,(HMENU)4001,g_hInst,NULL);//按钮A,B一组必须二选一
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("B"),WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,310,340,50,50,hWnd,(HMENU)4002,g_hInst,NULL);
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("C"),WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON|WS_GROUP,310,390,50,50,hWnd,(HMENU)4003,g_hInst,NULL);//按钮C,D一组必须二选一
	CreateWindowEx(0,TEXT("BUTTON"),TEXT("A"),WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,310,440,50,50,hWnd,(HMENU)4004,g_hInst,NULL);
}

VOID OnCommand(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	INT nNotifyCode=HIWORD(wParam);//消息
	INT nCtrlId=LOWORD(wParam);//按钮ID
	switch(nCtrlId)
	{
	case 1001:
		switch(nNotifyCode)
		{
		case BN_CLICKED:
			MessageBox(NULL,TEXT("下压式按钮单击"),TEXT("消息"),MB_OK);
			break;
		}
	break;
	case 3002:
		HWND hWndCtrl=GetDlgItem(hWnd,3002);
		LRESULT  nChecked=0;
		switch(nNotifyCode)
		{
		case BN_CLICKED:
			nChecked=SendMessage(hWndCtrl,BM_GETCHECK,0,0);
			if (nChecked&BST_CHECKED)
			{
				SendMessage(hWndCtrl,BM_SETCHECK,BST_UNCHECKED,0);
			}
			else
			{
				SendMessage(hWndCtrl,BM_SETCHECK,BST_CHECKED,0);
			}
		break;
		}
	break;
	}
}


LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{

	switch(uMsg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_COMMAND://用来处理菜单消息
		OnCommand(hWnd,uMsg,wParam,lParam);
		break;
	case WM_CREATE:
		OnCreate(hWnd,uMsg,wParam,lParam);
		break;
	}
	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

BOOL   RegisterWnd(TCHAR * pszClassName	)
{
	WNDCLASSEX  wce={0};
	wce.cbClsExtra=0;
	wce.cbSize=sizeof(wce);
	wce.cbWndExtra=0;
	wce.hbrBackground=HBRUSH(COLOR_WINDOW+1);//GetStockBrush(WHITE_BRUSH);
	wce.hCursor=NULL;
	wce.hIcon=NULL;
	wce.hIconSm=NULL;
	wce.hInstance=g_hInst;
	wce.lpfnWndProc=WndProc;
	wce.lpszClassName=pszClassName;
	wce.lpszMenuName=NULL;
	wce.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;

	ATOM   result=RegisterClassEx(&wce);
	if (result==0)
	{
		MessageBox(NULL,TEXT("窗口类注册失败!"),TEXT("窗口类注册失败!"),MB_OK);
		return FALSE;
	}
	return TRUE;
}

VOID  DisplayWindow(HWND hWnd)    
{
	ShowWindow(hWnd,SW_SHOW);
	UpdateWindow(hWnd);
}

VOID Message(HWND hWnd)
{
	HACCEL hAccel=LoadAccelerators(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	MSG  msg={0};
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateAccelerator(hWnd,hAccel,&msg);
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
}

HWND  CreateMyWindow(TCHAR *  pszClassName)
{
	//加载字符串资源
	TCHAR szText[100]=TEXT("");
	LoadString(g_hInst,IDS_STRINGMain,szText,100);
	//加载菜单资源
	HMENU hMenu=LoadMenu(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	HWND hWndNew=CreateWindowEx(0,pszClassName,szText,WS_OVERLAPPEDWINDOW|WS_THICKFRAME,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,hMenu,g_hInst,NULL);
	return hWndNew;
}


INT WINAPI  WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
	RegisterWnd(TEXT("MyWnd"));
	HWND hWnd=CreateMyWindow(TEXT("MyWnd"));
	DisplayWindow(hWnd);
	Message(hWnd);
	return TRUE;
}

//本程序用来文本编辑框
#include "windows13.h"
#include "stdafx.h"
#include "resource.h"
#include "stdio.h"
#include "windows.h"

HINSTANCE g_hInst=NULL;
HWND g_hEdit=NULL;

VOID OnSave();
VOID OnOpen();//打开文件
VOID OnCreate(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	g_hEdit=CreateWindowEx(0,TEXT("EDIT"),TEXT("HELLO EDIT!"),
							WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_MULTILINE,
							0,0,100,200,hWnd,(HMENU)1001,g_hInst,NULL);
}

VOID OnCommand(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
		int nNotifyCode=HIWORD(wParam);
		int nCtrlIDandMenuEvent=LOWORD(wParam);
		switch(nCtrlIDandMenuEvent)
		{
		case ID_SAVE1:
			OnSave();
		break;
		case ID_OPEN:
			OnOpen();
		break;
		case ID_COPY:
			SendMessage(g_hEdit,WM_COPY,0,0);
			//要查看这个消息的效果需要先把,Edit框中的东西选中,然后才能点击复制按钮,如果不选中任何东西,那么你就没有东西可以复制
		break;
		case ID_PASTE:
			SendMessage(g_hEdit,WM_PASTE,0,0);
			break;
		case ID_SELECT:
			SendMessage(g_hEdit,EM_SETSEL,0,-1);
			break;
		}
}

VOID OnSize(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
	RECT RectClient={0};
	GetClientRect(hWnd,&RectClient);
	MoveWindow(g_hEdit,RectClient.left,RectClient.top,RectClient.right,RectClient.bottom,TRUE);
}


VOID OnSave()//保存文本框中的内容
{
	LRESULT  nTextLen=SendMessage(g_hEdit,WM_GETTEXTLENGTH,0,0);
	TCHAR * szBuffer=(TCHAR *)malloc((nTextLen+1)*sizeof(TCHAR));//内存分配的数量不够就会出现问题。堆出现错误
	memset(szBuffer,0,(nTextLen+1));//缓存清空
	SendMessage(g_hEdit,WM_GETTEXT,nTextLen+1,(LPARAM)szBuffer);
	FILE * file=_tfopen(TEXT("C:\\text.txt"),TEXT("w+"));
	//if (fwrite(str, sizeof(wchar_t), strSize, fileHandle) != strSize)
	int nCount=fwrite(szBuffer,sizeof(TCHAR),nTextLen,file);
	TCHAR szText[50]=TEXT("");
	_stprintf(szText,TEXT("成功写入文件的字符个数:%d"),nCount);
	MessageBox(NULL,szText,TEXT("保存字符个数:"),MB_OK);
	fclose(file);
	free(szBuffer);
}

VOID OnOpen()//打开文件
{/*
	//打开一个文件
	FILE * pfile=_tfopen(TEXT("C:\\text1.txt"),TEXT("r"));
	//计算文件中内容的长度
	fseek(pfile,0,SEEK_END);
	long nLen=ftell(pfile);
	fseek(pfile,0,SEEK_SET);
	//分配缓冲区
	TCHAR * szBuffer=(TCHAR*)malloc((nLen+1)*sizeof(TCHAR));
	int num1=sizeof(TCHAR);
	int num=_tcslen(szBuffer);
	memset(szBuffer,0,(nLen+1));//注意memset(szBuffer,0,nLen+1)和memset(szBuffer,0,num);两个语句的区别:nLen+1和num两个数值的区别。
	//将文件内容写入缓存
	fread(szBuffer,nLen,1,pfile);
	//将缓存内容写入EDIT框
	fclose(pfile);
	//SendMessage(g_hEdit,WM_SETTEXT,0,(LPARAM)szBuffer);
	SetWindowText(g_hEdit,szBuffer);
	free(szBuffer);
	*/
	//上面的这段代码,读取文件的时候,读出都是乱码,原因有待解决,先放在这里!
	HANDLE hFile=CreateFile(TEXT("C:\\text1.txt"),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
	DWORD nHigh=0;
	DWORD nLow=GetFileSize(hFile,&nHigh);
	TCHAR * pszBuffer=(TCHAR *)malloc(nLow+1);
	memset(pszBuffer,0,nLow+1);
	SetFilePointer(hFile,1,NULL,FILE_BEGIN);
	DWORD nRead=0;
	ReadFile(hFile,pszBuffer,nLow+1,&nRead,NULL);
	SetWindowText(g_hEdit,(TCHAR *)pszBuffer);
	free(pszBuffer);
	CloseHandle(hFile);
	//上面的这段代码,读取文件的时候,读出都是乱码,原因有待解决,先放在这里!
}

LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{

	switch(uMsg)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	case WM_COMMAND://用来处理菜单消息
		OnCommand(hWnd,uMsg,wParam,lParam);//
		break;
	case WM_CREATE:
		OnCreate(hWnd,uMsg,wParam,lParam);
		break;
	case WM_SIZE://只要窗口大小发生改变那么就会发出这个消息
		OnSize(hWnd,uMsg,wParam,lParam);
		break;
	}
	return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

BOOL   RegisterWnd(TCHAR * pszClassName	)
{
	WNDCLASSEX  wce={0};
	wce.cbClsExtra=0;
	wce.cbSize=sizeof(wce);
	wce.cbWndExtra=0;
	wce.hbrBackground=HBRUSH(COLOR_WINDOW+1);//GetStockBrush(WHITE_BRUSH);
	wce.hCursor=NULL;
	wce.hIcon=NULL;
	wce.hIconSm=NULL;
	wce.hInstance=g_hInst;
	wce.lpfnWndProc=WndProc;
	wce.lpszClassName=pszClassName;
	wce.lpszMenuName=NULL;
	wce.style=CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS;

	ATOM   result=RegisterClassEx(&wce);
	if (result==0)
	{
		MessageBox(NULL,TEXT("窗口类注册失败!"),TEXT("窗口类注册失败!"),MB_OK);
		return FALSE;
	}
	return TRUE;
}

VOID  DisplayWindow(HWND hWnd)    
{
	ShowWindow(hWnd,SW_SHOW);
	UpdateWindow(hWnd);
}

VOID Message(HWND hWnd)
{
	HACCEL hAccel=LoadAccelerators(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	MSG  msg={0};
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateAccelerator(hWnd,hAccel,&msg);
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
}

HWND  CreateMyWindow(TCHAR *  pszClassName)
{
	//加载字符串资源
	TCHAR szText[100]=TEXT("");
	LoadString(g_hInst,IDS_STRINGMain,szText,100);
	//加载菜单资源
	HMENU hMenu=LoadMenu(g_hInst,MAKEINTRESOURCE(IDC_WINDOWS13));
	HWND hWndNew=CreateWindowEx(0,pszClassName,szText,WS_OVERLAPPEDWINDOW|WS_THICKFRAME,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,hMenu,g_hInst,NULL);
	return hWndNew;
}


INT WINAPI  WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
	RegisterWnd(TEXT("MyWnd"));
	HWND hWnd=CreateMyWindow(TEXT("MyWnd"));
	DisplayWindow(hWnd);
	Message(hWnd);
	OnSave();
	return TRUE;
}


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值