怎样让按钮上正常情况下显示一位图,当鼠标移动到其上面时显示另外一位图,鼠标移开时恢复原位图,希望给全代码,谁会?

xiyuxi2001 2002-11-12 04:39:07
怎样让按钮上正常情况下显示一位图,当鼠标移动到其上面时显示另外一位图,鼠标移开时恢复原位图,希望给全代码,谁会?
我没有很好的实现其功能,那位可以帮忙,谢谢。
...全文
68 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiyuxi2001 2002-11-18
  • 打赏
  • 举报
回复
很遗憾,CButtonST类是个很不错的解决方案,可就是偏偏没有解决我这个问题的方案,:(,如果那位大侠可以自己封装一个类,给个demo,在下非常感谢,可到现在也没有人能够解决我的问题,真遗憾。问题很简单:

怎样让基于对话框程序中,按钮上正常情况下显示一位图,当鼠标移动到其上面时显示另外一位图,鼠标移开时恢复原位图, 按钮始终是平板的,只要鼠标移动位图变化, 那位高手,请指教
xiyuxi2001 2002-11-18
  • 打赏
  • 举报
回复
非常感谢zwvista, 问题已经解决。
zwvista 2002-11-18
  • 打赏
  • 举报
回复
在CButtonSTv3.7类中,有如下的成员函数,可以解决搂住的问题
DWORD CButtonST::SetBitmaps(HBITMAP hBitmapIn, COLORREF crTransColorIn, HBITMAP hBitmapOut, COLORREF crTransColorOut)
其中前两个参数是鼠标在按钮之上的位图ID和透明部分的颜色,
后两个参数是鼠标在按钮之外的位图ID和透明部分的颜色。
zwvista 2002-11-18
  • 打赏
  • 举报
回复
http://www.softechsoftware.it/download/CButtonST.zip
下载后仔细地看示例程序,你的问题早已解决了
noahboat 2002-11-17
  • 打赏
  • 举报
回复
是http://www.softechsoftware.com还是http://www.softechsoftware.net?
好象两个都上不了。
zwvista 2002-11-15
  • 打赏
  • 举报
回复
下载CButtonST,夸张一点说,完美的解决了按钮问题
http://www.softechsoftware.it
应该是意大利人的作品
xiyuxi2001 2002-11-15
  • 打赏
  • 举报
回复
动作相似但有实现很大不同,1,要基于对话框的程序Dialog里的按钮,2,按钮始终是平板的,那位会啊!
zhang865 2002-11-13
  • 打赏
  • 举报
回复
象IE的按钮是吗?

你看看这段代码,

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

if (!m_wndToolBar.Create(this,WS_CHILD | WS_VISIBLE | CBRS_BOTTOM | CBRS_NOALIGN ))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}


CImageList img;
CString str;

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}

// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);

m_wndToolBar.GetToolBarCtrl().SetButtonWidth(50,300); //设置工具条按钮大小
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);

img.Create(IDB_BITMAP1,50,0,RGB(255,0,255));
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
img.Detach();

img.Create(IDB_BITMAP2,50,0,RGB(255,255,255));
m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();

m_wndToolBar.ModifyStyle(0,TBSTYLE_FLAT | TBSTYLE_TRANSPARENT);
m_wndToolBar.SetButtons(NULL,2);

m_wndToolBar.SetButtonInfo(0,ID_FILE_OPEN,TBSTYLE_BUTTON,0);
m_wndToolBar.SetButtonText(0,"");
m_wndToolBar.SetButtonInfo(1,ID_VIEW_ANLY,TBSTYLE_BUTTON,1); //TBSTYLE_BUTTON|TBBS_SEPARATOR
m_wndToolBar.SetButtonText(1, "");

CRect recttoolbar;
// 设置工具条大小

m_wndToolBar.GetItemRect(0, &recttoolbar);
m_wndToolBar.SetSizes(recttoolbar.Size(), CSize(50,19));

if (!m_wndrebar.Create(this))
{
TRACE0("failed to create rebar\n");
return -1; // fail to create
}

// 将工具条和生成的输入框加入crebar对象,集中显示在工具条区域

m_wndrebar.AddBar(&m_wndToolBar);

return 0;
}

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧