VC编程要点总结1

707 篇文章 ¥99.90 ¥299.90
这篇博客总结了VC++编程中的关键点,包括模态对话框的响应处理,加载图标资源,系统菜单的自定义,自定义资源类型及其应用,并详细介绍了CButtonST类的使用,如设置图标和文字、显示平面按钮以及动态改变图标等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模态对话框根据点击按钮进行处理;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}

载入图标资源
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

在系统菜单中添加一项(窗口左上角图标单击出的菜单)
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
        pSysMenu->AppendMenu(MF_SEPARATOR);
        pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
}

从静态文本框继承一个类,继承类的消息映射
BEGIN_MESSAGE_MAP(CStaticRectangle, CStatic)
    //{{AFX_MSG_MAP(CStaticRectangle)
    ON_WM_PAINT()
    ON_WM_TIMER()
    ON_WM_ERASEBKGND()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()


VC支持自定义资源类型(Custom Resource),

自定义的资源的用途
1.默认的皮肤压缩包或语言包。
2.做为一些病毒/木马程序的寄生方式。
3.合并EXE与它所需要的DLL文件。
4.其它需要;在程序中播放一个AVI动画等,都可以通过将二进制的数据文件作为自定义资源加入到可执行文件中来实现;

添加资源时选择自定义,IDE会为你生成一个新的二进制资源;

FindResource用来在一个指定的模块中定位所指定的资源;

LockResource用来锁定内存中的资源数据块,它的返回值就是要使用的指向资源数据的内存指针;

用SizeofResource来确定资源的尺寸;

3


CButtonST

CButtonST是一个功能最全的CButton派生类。

CButtonST类的一些信息,
作者:Davide Calabro
主页:http://www.softechsoftware.it

CButtonST类主要包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四个文件。如果你打算使用CButtonST的窗口不止一个,那么可以在VC++的Workspace | FileView中导入以上的四个文件之后,然后在SdtAfx.h文件中添加合适的include语句,如#include "BtnST.h"。

在按钮上加入Icon,使Icon和文字同时显示
假设按钮ID为IDC_BUTTON1
1. 添加成员变量
CButtonST   m_btn;
2. 添加Icon资源,设其ID设为IDI_ICON1
3. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON1);
m_btn.SetFlat(FALSE);
为达到最好效果,请根据Icon的大小调整按钮的大小。

显示平面按钮
只需要把m_btn.SetFlat(FALSE)语句去掉。

使按钮上的图标可变
假设按钮ID为IDC_BUTTON1
1. 添加成员变量
CButtonST   m_btn;
2. 添加两个Icon资源,ID设为IDI_ICON1和IDI_ICON2
IDI_ICON1是普通状态的图标,IDI_ICON2是按下时的图标
3. 在OnInitDialog函数中初始化按钮
m_btn.SubclassDlgItem(IDC_BUTTON1,this);
m_btn.SetIcon(IDI_ICON2,IDI_ICON1);
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值