MFC
文章平均质量分 63
WowBanyan
一蓑烟雨任平生
展开
-
一种比较简单的绘制半透明多边形的方法
绘制半透明多变形首先我们知道用AlphaBlend()函数可以实现绘制透明矩形而要绘制透明多边形则会更复杂一点.首先工程中要使用该函数必须包含msimg32.lib文件#pragma comment(lib, “msimg32.lib”)然后在OnDraw或者OnPaint消息函数添加代码思路:由于用AlphaBlend函数必须从一个源DC中复制其中的内容到目标DC中,所以要创建一个内存DC在其中绘制我们所需要的多边形,但这边就会存在一个问题,便是创建的源DC默认会以黑色填充背景,如果直接将整个DC贴过去,原创 2011-01-05 16:28:00 · 1294 阅读 · 0 评论 -
CSliderCtrl的自绘制和鼠标定位滑块
鼠标左键定位滑块首先创建一个类继承于CSliderCtrl然后由于要根据鼠标左键定位到相应的位置,则必须要添加消息响应函数OnLButtonDown(),内容见下:void CMySlider::OnLButtonDown(UINT nFlags,CPoint point) { CRectmChannel; GetChannelRect(&mChannel); // 获得Channel(即那条线)的矩形大小 //获得所设置的范围值(这边应在初始化函数中原创 2011-01-05 16:31:00 · 3341 阅读 · 0 评论 -
逻辑坐标和设备坐标概念粗解!
逻辑坐标和设备坐标在正常情况下如果窗口不能卷动,或者可以卷动但是未卷动,则这两种坐标是相同的。窗口:我们程序所创建的那个可视的界面。视口: 客户区也就是Client area的左上角(也称为视口原点)开始肉眼所能见的显示区域。在窗口未卷动之前,窗口原点和视口原点是重叠的。但是当窗口向下卷动。此时窗口原点和视口原点就不同。视口原点还是原来的地方,但是窗口原点则被卷到了上方。(希望我这样讲能比较直观)。相对于窗口原点的是逻辑坐标。而相对于视口原点的则为设备坐标。(注意我们之前讨论的设备坐标是以客户区域为参照的,原创 2011-01-14 15:09:00 · 705 阅读 · 0 评论 -
MFC菜单自绘制
菜单单选和复选状态的区别复选和单选状态下通过GetMenuState()返回的值是不同的:复选状态下返回的值是8也就是MF_CHECKED标识而单选状态返回值是520转换为十六进制为208。在MSDN中定义的标识:#define MF_UNCHECKED 0x00000000L#define MF_CHECKED 0x000原创 2011-06-24 10:42:00 · 3178 阅读 · 0 评论 -
向工具条按钮添加图片
if (!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP |CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1)) { TRACE0("Failedt原创 2010-07-22 15:34:00 · 1282 阅读 · 2 评论 -
CListCtrl类的部分使用
今天做双击List Control中某一行,并返回该行中的数据到指定对话框中,查了些资料也算实现了具体方法如下:对List Control的双击事件的响应单击事件类似首先为了响应ListControl的双击事件就必须声明一个类继承自CListCtrl然后再其NM_DBCLICK事件中响应. CPointpoint; GetCursorPos(&point); ScreenToClient(&point); LVHITTESTINFO原创 2010-07-20 16:02:00 · 599 阅读 · 0 评论 -
伪实现停靠窗口?很拙略的办法,勉强实现!
首先创建一个对话框模板资源并生成一个类重载对话框的WM-WINDOSPOSCHANGED消息,并在消息响应函数里添加如下代码:void CChangeDlg::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) { CDialog::OnWindowPosChanged(lpwndpos); // TODO: Add your message handler code here CPoint point; //获得屏幕的X,Y原创 2010-07-02 14:16:00 · 503 阅读 · 0 评论 -
VC6下实现透明对话框!
今天突然要用到透明对话框,所以搜索了一下找到了实现的办法如下: 创建一个对话框并在其对话框的OnInitDialog消息响应中进行初始化所需要包含的库是User32.DLL头文件是Winuser.h其中如果要设置透明对话框要用到的函数是SetLayeredWindowAttributes()且必须将窗口样式中添加WS_EX_LAYERED类型其值为0x80000LWA_CO原创 2010-05-20 20:00:00 · 2135 阅读 · 0 评论 -
MFC下图形任意角度旋转.
<br /><br />图形的旋转公式:<br />x1 = (x - xcenter) * cosθ - (y - ycenter) * sinθ + xcenter; <br />y1 = (x - xcenter) * sinθ + (y- ycenter) * cosθ + ycenter; <br /> <br />x, y:为原先点的坐标位置。<br />x1, y1旋转后点的坐标位置。<br />Xcenter, ycenter:为所绕的中心点的坐标<br />原创 2011-03-24 10:58:00 · 10651 阅读 · 1 评论