vs2010 玩转金山界面库 (2) 应用基础


  上一篇 介绍准备工作 下面讲 对wtl的修改 应用金山界面库

 

1:修改stdafx.h

修改为如下:

// stdafx.h : include file for standard system include files,
//  or project specific include files that are used frequently, but
//  are changed infrequently
//

#pragma once

// Change these values to use different versions
#define WINVER		0x0500
#define _WIN32_WINNT	0x0501
#define _WIN32_IE	0x0501
#define _RICHEDIT_VER	0x0200

#include <atlbase.h>
#include <wtl/atlapp.h>

extern CAppModule _Module;

#include <atlwin.h>

#include <wtl/atlframe.h>
#include <wtl/atlctrls.h>
#include <wtl/atldlgs.h>

#if defined _M_IX86
  #pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
  #pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_X64
  #pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
#else
  #pragma comment(linker, "/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
#endif


 

2:修改MainDlg.h

修改为如下:

// MainDlg.h : interface of the CMainDlg class
//
/

#pragma once
class CMainDlg : public CBkDialogImpl<CMainDlg>
{
public:
	CMainDlg() : CBkDialogImpl<CMainDlg>(IDR_BK_MAIN_DIALOG)
	{
	}
	//
	
public:
	///资源初始化  id 加方法
	BK_NOTIFY_MAP(IDC_RICHVIEW_WIN)
		BK_NOTIFY_ID_COMMAND(IDC_BTN_SYS_CLOSE, OnBkBtnClose)
		BK_NOTIFY_ID_COMMAND(IDC_CHK_CHK1, OnCheck1)
		BK_NOTIFY_ID_COMMAND(IDC_CHK_MYCHK, OnMyCheck)
		BK_NOTIFY_ID_COMMAND(IDC_BTN_MENU, OnMainMenu)
		BK_NOTIFY_ID_COMMAND(IDC_BTN_MAX, OnMaxWindow)
		BK_NOTIFY_ID_COMMAND(IDC_BTN_MIN, OnMinWindow)
		//BK_NOTIFY_ID_COMMAND(IDS_BTN_BTN1,OnAdd)
	BK_NOTIFY_MAP_END()

	BEGIN_MSG_MAP_EX(CMainDlg)
		MSG_BK_NOTIFY(IDC_RICHVIEW_WIN)
		MSG_WM_SYSCOMMAND(OnSysCommand)
		CHAIN_MSG_MAP(CBkDialogImpl<CMainDlg>)
		MSG_WM_INITDIALOG(OnInitDialog)
		MSG_WM_TIMER(OnTimer)
		REFLECT_NOTIFICATIONS_EX()
	END_MSG_MAP()
	
	//
	//定义方法
public:
		void btclick(){
		OnMainMenu();
	}
	void OnBkBtnClose()
	{
		EndDialog(IDCANCEL);
	}
	void OnMainMenu()
	{
		::MessageBox(this->m_hWnd, _T("Main Menu!"), _T("Menu!"), MB_OK);
	}
	void OnCheck1()
	{
		//EndDialog(IDCANCEL);
		/*::MessageBox(this->m_hWnd, _T("Hello!"), NULL, MB_OK);*/
		
		return;
	}
	void OnMyCheck()
	{
		::MessageBox(this->m_hWnd, _T("My CheckBox!"), NULL, MB_OK);
	}
	LRESULT OnMaxWindow();
	LRESULT OnMinWindow();
	void	OnSysCommand(UINT nID, CPoint point);
	LRESULT OnInitDialog(HWND, LPARAM);
protected:
	int					m_nCurProgress;
};

3:修改MainDlg.cpp

修改为如下:

// MyApp.cpp : main source file for MyApp.exe
//

#include "stdafx.h"

#include "resource.h"

#include "MainDlg.h"

CAppModule _Module;

int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
	HRESULT hRes = ::CoInitialize(NULL);
// If you are running on NT 4.0 or higher you can use the following call instead to 
// make the EXE free threaded. This means that calls come in on a random RPC thread.
//	HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
	ATLASSERT(SUCCEEDED(hRes));

	// this resolves ATL window thunking problem when Microsoft Layer for Unicode (MSLU) is used
	::DefWindowProc(NULL, 0, 0, 0L);

	AtlInitCommonControls(ICC_BAR_CLASSES);	// add flags to support other controls

	hRes = _Module.Init(NULL, hInstance);
	ATLASSERT(SUCCEEDED(hRes));

	BkString::Load(IDR_BK_STRING_DEF);
	BkFontPool::SetDefaultFont(BkString::Get(IDS_APP_FONT), -12);

	BkSkin::LoadSkins(IDR_BK_SKIN_DEF);
	BkStyle::LoadStyles(IDR_BK_STYLE_DEF);

	int nRet = 0;
	// BLOCK: Run application
	{
		CMainDlg dlgMain;
		nRet = dlgMain.DoModal();
	}

	_Module.Term();
	::CoUninitialize();

	return nRet;
}

4:新建两个文件 分别为 bkwinres.h 和bkwinres.rc2

 

5:在项目中添加一个新建筛选器 命名为import  在里面再新建两个 分别命名为 bkwin和xml

然后选中bkwin 鼠标右击属性 添加现有项导入 bkwin目录的头文件 和tingxml目录的头文件 

 

6:修改xml的4个cpp文件 为不使用预编译头文件 如图:

 

7:添加附加连接器  (这个文件我将和所有的一起上传或者到微软下载wddk 7.0  有600多m的iso)我将其单独剪切出来;如果是wddk 其目录为 D:\WinDDK\7600.16385.1\lib\ATL\i386  我是D盘; 

 

具体设置 项目属性----连接器-----附加库目录---编辑  如图

 

8:附加资源的包含目录 这个不说了 照着上面弄

 

9:拷贝资源文件到 Resource Files(这个没办法 只能到我的源码包里去拷贝)

 

10:项目属性添加现有项bkwinres.h ;bkwinres.rc2;为新建的两个bkwinres.h ;bkwinres.rc2添加代码

bkwinres.h代码如下:

 

#pragma once
///资源定义

#define IDC_BTN_SYS_CLOSE			100
#define IDC_BTN_MAX					101
#define IDC_BTN_MIN					102
#define IDC_BTN_MENU				110
#define IDC_CHK_CHK1				4
#define IDC_CHK_MYCHK				18
#define IDS_APP_FONT				1
//#define IDS_BTN_BTN1				133
//#define IDS_JDT_JDT1				811
//#define IDS_JDT_JDT11				812
//#define IDS_TXT_TXT1				301

 

 

bkwinres.rc2代码如下:

//
// XML

DEFINE_XML(IDR_BK_SKIN_DEF,			100, "res\\def_skin.xml")
DEFINE_XML(IDR_BK_STYLE_DEF,		101, "res\\def_style.xml")
DEFINE_XML(IDR_BK_STRING_DEF,		102, "res\\def_string.xml")
DEFINE_XML(IDR_BK_MAIN_DIALOG,		103, "res\\dlg_main.xml")

//
// PNG

DEFINE_PNG(IDP_LITTLE_LOGO,					201,   "res\\little_logo.png")
DEFINE_PNG(IDP_BIG_LOGO,					202,   "res\\big_logo.png")

DEFINE_PNG(IDC_BTN_CLOSE,					100,	"res\\dlg_btn_close.png")
DEFINE_PNG(IDC_BTN_MAX,						101,	"res\\dlg_btn_max.png")
DEFINE_PNG(IDC_BTN_MIN,						102,	"res\\dlg_btn_min.png")
DEFINE_PNG(IDC_BTN_NORMAL,					103,	"res\\dlg_btn_normal.png")
DEFINE_PNG(IDC_BTN_MENU,					110,	"res\\dlg_btn_menu.png")


//
// BITMAP

DEFINE_BMP(IDB_DLG_HEADER,					501,	"res\\dlg_header.bmp")
DEFINE_BMP(IDB_DLG_BODY,					502,	"res\\dlg_body.bmp")
DEFINE_BMP(IDS_JDT_JDT1,					811,	"res\\progress_bar_bg.bmp")
DEFINE_BMP(IDS_JDT_JDT2,					812,	"res\\progress_bar_bg.bmp")


 

到此手术完毕 运行看看

 

运行看看 

我的饿是这个效果 

 

 

 

 

你的了 

 

 

下一步 我将介绍修改界面内容和控件的应用  还有半个小时下班了 写下工作日子 88

 

 

 



 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值