要工程源码,原理看多了,似乎没有满意的回答
解决方案 »
- 如何编程处理 rec 格式的音频文件 ?
- MFC 关于DOS调用的一个问题(新来的,实在拿不出分,见谅)
- c语言编写抽奖系统
- 如何给客户窗口加一个背景图
- ActiveX控件每次进浏览器页面都要求重新安装,为什么?
- 怎么在WIN32 CONSOLE中用COUT?
- 用COM口监测三个摄像头电源是否是开的。请问:三个摄像头的电源线怎样接在COM口上呢?电信号可以转化成COM口可识别的信号吗?
- 如何网络间复制文件?
- MFC的3中DLL有什么区别,为什么我的MFC扩展DLL不能静态链入?
- MFC 按钮打开PDF文件
- 继承CFileDialog的对话框上增加图片预览功能
- 请问,窗口从失去焦点到再次获得焦点时会响应什么消息?
{
::lstrcpy(m_tcFileName,lpszBmp);
if (m_hBmpBK)
{
DeleteObject(m_hBmpBK);
m_hBmpBK = NULL;
}
TCHAR szDisk[64]={0};
TCHAR szPath[512]={0};
TCHAR szName[_MAX_FNAME]={0};
TCHAR szExt[_MAX_EXT]={0};
_splitpath(lpszBmp,szDisk,szPath,szName,szExt);
if (lstrcmpi(szExt,".bmp") == 0)
{
m_hBmpBK = (HBITMAP)LoadImage(AfxGetInstanceHandle(), m_tcFileName, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_DEFAULTSIZE|LR_CREATEDIBSECTION);
if (m_hBmpBK)
{
m_bBitmap = TRUE;
BITMAP bm = { 0 };
::GetObject(m_hBmpBK, sizeof(BITMAP), &bm);
m_nWidth = bm.bmWidth;
m_nHeight = bm.bmHeight;
}
}
else
{
m_hIcon = (HICON)LoadImage(NULL,m_tcFileName,IMAGE_ICON,0, 0, LR_LOADFROMFILE);
if (m_hIcon)
{
m_bBitmap = FALSE;
ICONINFO info = { 0 };
GetIconInfo(m_hIcon,&info);
BITMAP bp = { 0 };
GetObject((HGDIOBJ)info.hbmColor,sizeof(bp),&bp);
m_nWidth = bp.bmWidth*4;
m_nHeight = bp.bmHeight;
if (info.hbmColor)
::DeleteObject(info.hbmColor);
if (info.hbmMask)
::DeleteObject(info.hbmMask);
}
}
}
现在的,
按钮的属性要设成OwnerDraw...CBitmapButton myButton;// Create the bitmap button (must include the BS_OWNERDRAW style).
myButton.Create(NULL, WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,
CRect(10,10,100,100), pParentWnd, 1);// Load the bitmaps for this button.
myButton.LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);