导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

VC高手请进。VC中透明浮动按钮的问题!(急)

dsfy 2002-07-28 06:31:51
我从CButton 派生了一个类CDrawButton来实现对话框上的透明浮动按钮
class CDrawButton : public CButton
{
// Construction
public:
CDrawButton();

private:
CFont* m_pFont;
CBitmap* m_pBmp;
UINT mBtnStats;


public:
virtual ~CDrawButton();
void SetButtonMode(UINT action, UINT mode);
void Draw(CWnd *pParent);
BOOL Load(UINT nID, CWnd *pParent);
// Generated message map functions
protected:
//{{AFX_MSG(CDrawButton)
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
//}}AFX_MSG

DECLARE_MESSAGE_MAP()
};

其中: Load如下:
BOOL CDrawButton::Load(UINT nID, CWnd *pParent)
{
if (m_pBmp!=0)
return FALSE;

if (!SubclassDlgItem(nID, pParent))
return FALSE;

Draw(pParent);

return TRUE;
}

在对话框中添加了OnMouseMove函数来初始化
void CEgDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_Button.Load(IDC_SET,this);
CDialog::OnMouseMove(nFlags, point);
}
上面的OnMouseMove只能初始化一个按钮,也就是说Load只能运行一次,
我的问题就是:我的对话框上的按钮有多个,怎样来初始化其它的按钮
...全文
10 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jason_sun22 2002-07-28
你的ID只有一个呀!怎么能创建多个?而且你的控件句柄也只有一个!

建一个ID数组 int id[n];
建一个句柄数组 CDrawButton m_Button[n];

for(int i=0;i<n;i++)
{
m_Button[i].Load(id[i],this);
}
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……