博文
MFC/Windows编程之个性化图标(2008-04-08 16:15:00)
摘要:
我们发现向导生成的MFC程序生成的桌面上(资源管理器上)的.exe文件和运行时标题栏上(最小化时任务栏上)的图标都是一样,实际上我们可以为它们配置不同的图标。实际上vc默认的那个MFC的图标(本案例中的Test.ico)是一个ID号对应了2个图标,一个16×16的一个32×32的。一个16×16的小图标是用于标题栏和最小化时任务栏的。另一个32×32的大图标则是用于桌面和资源管理器的。故我们可以为应用程序再添加一个与默认图标大小不同的.ico文件.
以下为MFC向导生成的窗口(标题已改)
以下为生成的.EXE文件在资源管理器中的缩略图:
以下为项目的资源res文件夹:
一.个性化图标
(1)为应用实例添加光标资源
右击解决方案资源管理器中的资源文件-〉添加-〉资源-〉选择Icon资源类型-〉若选“导入”则可以从导入硬盘中已有的ICON文件;若选“新建” 则打开资源编辑器,自己绘制图标。这里我们选择导入我们收藏的ICON文件,一个黄纸飞机IDI_ICON1和一个红纸飞机IDI_ICON2。
我们在这里先将这两个图标通过CDC的DrawIcon函数在窗口中绘制出来。
void CEX041View::OnDraw(CDC* pDC)
{
// TODO: 在此处为本机数据添加绘制代码
HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1);
pDC->DrawIcon(0,0,hIcon);
DestroyIcon(hIcon);
hIcon=AfxGetApp()->LoadIcon(IDI_ICON2);
pDC->DrawIcon(50,0,hIcon);
DestroyIcon(hIcon);
}
(2)为应用程序实例加载光标资源,并为主窗口设置指......
MFC/Windows编程之修改窗口标题(2008-04-08 15:38:00)
摘要: 首先我们启动Visual Studio2005,新建项目Test利用MFC App Wizard 生成MFC应用程序框架。程序运行后显示如下:
修改窗口标题字符串“无标题-Test”
<1> 修改前半部分
方法一:更改StringTable的IDR_MAINFRME的标题,将第一个\n之和第二个\n之间添加字符串fan为:
Test\nfan\nTest\n\n\nTest.Document\nTest.Document
方法二:在 CEX041Doc::OnNewDocument()中添加SetTitle("我的程序");
BOOL CTestDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: 在此添加重新初始化代码
SetTitle(L"fan");
// (SDI 文档将重用该文档)
return TRUE;
}
方法三:重载虚函数SetTitle
void CTestDoc::SetTitle(LPCTSTR lpszTitle)
{
// TODO: 在此添加专用代码和/或调用基类
CDocument::SetTitle(L"fan");
}
运行结果如下:
<2>修改后半部分
修改StringTable的IDR_MAINFRME的标题,将第一个\n之前的字符串Test替换为XJTU:XJTU\nfan\nEX041\n\n\nEX041.Document\nEX041.Document
运行结果如下:
<3>去掉标题中间的“-”
......
MFC/windows基本数据类型(2008-04-01 21:57:00)
摘要:#define FALSE 0 afx.h
#define TRUE 1 afx.h
#define NULL 0 afx.h
typedef void VOID winnt.h
//短整型typedef unsigned short
typedef unsigned short USHORT; windef.h
typedef unsigned short WORD; windef.h
typedef unsigned short wchar_t
typedef short SHORT; winnt.h
//整型typedef int
typedef int &n......
VS入门之菜单图标光标状态栏(2007-10-12 20:09:00)
摘要:本例融合了添加菜单、光标、图标资源及状态栏显示时间。
1文件à新建à项目àwin32àwin32空项目à项目属性à配置属性à常规àMFC的使用à在共享DLL中使用MFC或在静态库中链接MFCà编写first.cpp文件
2在项目文件中添加first.rc文件,在资源视图中选择first.rc节点,再选择编辑à包含文件,在上下两列表框中分别填入#include afxres.h”和#include“afxres.rc”;
3右击资源视图中first.rc节点à添加资源—〉选择Menu|新建à在资源编辑框中编辑FILE|EXIT菜单à单击菜单出现菜单属性菜单编辑器将其EXIT 的ID设置为ID_FILE_EXIT,并在.cpp文件中添加系统默认EXIT退出函数命令;
4右击资源视图中first.rc节点à 添加资源à选择Icon|导入已有的.ico图表文件à在资源视图一次展开Icon 将其ID默认为IDI_ICON1,然后在first.cpp加载IDI_ICON1;本例加载了两个Icon分别为生成的.exe文件图标和主窗口左上角小图标。
5同上导入自己收藏的.cur光标文件,默认ID为IDC_CURSOR1,然后在first.cpp加载IDI_CURSOR1
附程序清单:
#include <afxwin.h> // 必要的包涵文件
#include <afxext.h>
#include "resource.h"
// 主窗口类
class MyFrameWindow : public CFrameWnd
{
public:
//在窗口被创建之前先执行此函数
BOOL PreCreateWindow(CREATESTRUCT &cs)
{
cs.hMenu=LoadMenu(NULL,MAKEINTRESOURCE(IDR_MENU1)); //载入自定义菜单
return CFrameWnd::PreCreateWin......