MFC + CxImage 实现自绘半透明按钮】的更多相关文章

环境:VS2008 + CxImage btn.h [cpp] view plaincopyprint? #pragma once // CBtn #include "ximage/ximage.h" class CBtn : public CButton { DECLARE_DYNAMIC(CBtn) private: CxImage * m_pImgNormal; CxImage * m_pImgOver; CxImage * m_pImgDown; CxImage * m_pIm…
MFC中窗口重绘 摘自:http://blog.csdn.net/shuilan0066/article/details/5859057 在刷新窗口时经常要调用重绘函数 MFC提供了三个函数用于窗口重绘 InvalidateRect(&Rect) Invalidate() UpdateWindow() 当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和 WM_NCPAINT(通知非客户区有变化)WM_NVPAINT系统会自己搞定WM_PAINT消息对应的函数是…
    使用MFC实现上面的按钮半透明效果能看到父窗口中的内容,上面是效果图(一个是带背景图片的.另一个是不带的). 控件继承自CWnd类(彩色的部分是窗口的背景图片.按钮是PNG图片,第二个图标是鼠标指向时的效果).   图标的绘制使用GDI+绘制PNG图片,在此不多说了(处理WM_PAINT消息): 1 void PNGButton::OnPaint() 2 { 3 CPaintDC dc(this); 4 Graphics g(dc.m_hDC); 5 if(DrawBorder){ 6…
转自:http://www.cnblogs.com/huhu0013/p/4626686.html 动态按钮(多个)的创建: 1.在类中声明并定义按钮控件的ID #define IDC_D_BTN 10000 2.在类的OnInitDialog()函数中动态创建按钮(建立按钮对象时最好建立对象的指针) 3.手动释放对象指针 下面是动态生成多个按钮的例子: CButton* btn = new CButton[5]; DWORD dwStyle = WS_CHILD | WS_VISIBLE |…
原文转自 http://bbs.csdn.net/topics/391039432 如图类似Tab控件的功能    但Tab控件按钮是固定的上下左右  不方便     所以想自己重新做个这种   我MFC新手,求指点,具体要怎么弄,如果可以,给我发个这种例子研究下更好了,好人一生平安,谢谢. [解决方案] 新建一个Style为Child,Border为None的对话框,然后在父对话框那里添加一个PictureBox(IDC_PIC1)用于定位,Visible设为False //CDlgParen…
搬家于CSDN 2015-05-14 MFC提供了三个函数用于窗口重绘 InvalidateRect(&Rect) Invalidate() UpdateWindow() 当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和 WM_NCPAINT    (通知非客户区有变化) WM_NVPAINT    系统会自己搞定 WM_PAINT         消息系统默认对应的函数是OnPaint(),但‍一般在重绘时都在OnDraw,因为在ONPAIN中调用了OND…
通过尝试有两种方案可以解决这个问题,第一种方案是通过PreTranslateMessage函数在调度消息之前对消息类型进行筛选,第二种方案是重载CButton类,在重载后的类CForTestButton中新增ON_WM_LBUTTONDOWN消息以及ON_WM_LBUTTONUP消息.   第一种方案 实现原理也挺简单,在消息调度函数PreTranslateMessage函数中拦截Button按钮的句柄,之后在对应大括号内调用相关功能块即可.核心源码如下: …… …… BOOL CTestBut…
也许是VS版本的关系,CButtonST中的BCMenu两个文件是无法编译通过的.   1.拷贝下载的CButtonST(我下载的v3.9)中的BtnST.h和BtnST.cpp文件到自己项目目录下. 2.将这两个文件导入项目并在对话框程序的头文件中#include "BtnST.h" 3.修改BtnST.h,注释掉 #defineBTNST_USE_BCMENU  和 #include "BCMenu.h",这样就不考虑BCMenu了. 可以编译通过,有一些war…
COLORREF color=RGB(0,255,0); unsigned char r=GetRValue(color); unsigned char g=GetGValue(color); unsigned char b=GetBValue(color); ------------------------------------- CColorDialog colorDialog;COLORREF color;if( colorDialog.DoModal() == IDOK ){    …
http://blog.csdn.net/witch_soya/article/details/6889904…