![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vc++ mfc
Mr.FDD
这个作者很懒,什么都没留下…
展开
-
第一个MFC小程序:鼠标按下并拖动画线,自动擦除移动过的轨迹
开始学习VC++MFC程序了!了解了一些如何在窗口上面绘画的功能,突然联想到平时在使用一些绘图软件或其它涉及到画线的程序的一个小功能:需要画一条直线时,总是在鼠标左键按下时,开始画线;鼠标拖动时,始终显示鼠标左键按下时的起点与鼠标最新位置之间的连线。这样,使用者可以清楚地看到自己准备要画的线的位置,直到连线刚好是自己想要的位置时,鼠标左键释放,连线完成。 我想这个...原创 2019-03-17 18:40:31 · 3270 阅读 · 0 评论 -
多线程程序:CSemaphore的测试
源码:https://download.csdn.net/download/weixin_44027440/11440839原创 2019-07-28 08:34:15 · 186 阅读 · 0 评论 -
异步执行的线程之间:如何判断并等待线程的结束
一直没弄明白异步执行的线程之间,如果一个线程要等待其它必要的线程先完成才能继续执行这个线程的话,该如何做呢?直到到论坛问了一些大神,才得到点启示。形成实例,却又状况百出。直到今天,终于弄出想要的效果了。说一说我的做法:目标是在对话框中,单击按钮先后启动三个线程:线程1,2启动最初为挂起状态,等完成句柄复制后才启动。线程3立即执行并启动线程同步事件,让线程1,2 执行被锁住的代码。等待线...原创 2019-08-04 12:19:25 · 2201 阅读 · 0 评论 -
模拟售票大厅实例——多线程时访问共享变量时的安全(CMutex或CCriticalSection的应用)
当程序运行时,可以通过多线程来提高程序运行的效率和拥有更好的体验。但多线程(或多进程)同时也带来很多的问题:最严重的莫过于对同一个对象或变量访问时,由于线程运行异步的原因,会造成程序运行出现无法控制的重大错误。对此,MFC有控制线程或进程同步的封装类:如CMutex或CCriticalSection等等。详细用法不说,直接上代码:源码:https://download.csdn.net/...原创 2019-07-24 22:40:21 · 428 阅读 · 0 评论 -
透明窗口的实现并在透明窗口上能画鼠标轨迹、文字输出和截图放大,小窗口浮动等功能,
代码如下:1、Simple.h#pragma onceclass SimpleApp : public CWinApp{public: SimpleApp(); ~SimpleApp(); virtual BOOL InitInstance(); COLORREF m_clrWndTransparencyColorKey; COLORREF m_clrWndNoTran...原创 2019-07-06 18:14:57 · 449 阅读 · 0 评论 -
利用CDC::PlgBlt()的遮罩功能,实现图片的半透明复制
CDC::PlgBlt的原型:BOOL PlgBlt( POINT lpPoint, CDC* pSrcDC, int xSrc, int ySrc, int nWidth, int nHeight, CBitmap& maskBitmap, int xMask, int yMask );从原型中可以看到,参数有一个是单色图片,并利用单色图片实现遮罩功能。假设有一个棋盘图片,又...原创 2019-07-01 06:16:21 · 539 阅读 · 0 评论 -
关于CDC::PlgBlt的理解与使用
CDC::PlgBlt函数执行从源设备上下文中的指定矩形到给定设备上下文中指定的平行四边形的颜色数据位块传输。如果给定的位掩码句柄标识有效的单色位图,则函数使用此位图掩蔽源矩形中的颜色数据位。其原型是:BOOL PlgBlt( POINT lpPoint, CDC* pSrcDC, int xSrc, int ySrc, int nWidth, int nHeight, CBitmap&...原创 2019-06-30 11:32:26 · 1323 阅读 · 0 评论 -
用CDC::StretchBlt()复制位图时,如何保证位图显示“不失真”?
用CDC::StretchBlt()复制位图时,如果源图像长度和宽度比目标区域的宽度、高度大或小,那么复制位图时,目标区域内复制的图像,宽度或高度两个方向或其中一个方向可能会出现扭曲,使得图像的比例不协调,位图复制有点“失真”。怎么保持原图的样子呢?所谓保持原样,实际上就是保持跟源图像相同的纵横比。基于这个思路:复制位图时,以源图像的纵横比为准,计算出在目标区域内,能最大限度保持相同纵横比例、...原创 2019-06-28 23:58:50 · 604 阅读 · 0 评论 -
(转载)位图的光栅操作及ROP码解析
作者:snowstart来源:CSDN原文:https://blog.csdn.net/snowstart/article/details/326715版权声明:本文为博主原创文章,转载请附上博文链接!转载 2019-07-04 04:31:54 · 333 阅读 · 0 评论 -
VC++:菜单的使用总结
菜单是windows应用程序经常使用的资源之一。从今天开始,把有关菜单的创建及使用等各方面的基本用法总结到一起,算是做个笔记吧!准备一天写一点,陆陆续续完成!一、菜单的创建:(一)VC++菜单通过编辑资源文件直接创建菜单可以自己编写菜单资源文件来完成来手工创建菜单,这与编程方法创建菜单不同。用这种方法创建菜单分两步:1、在rc资源文件中编写菜单资源:首先,要用其它文字编辑...原创 2019-06-24 22:10:59 · 4348 阅读 · 1 评论 -
有关vc++ 时钟程序的学习与体会
最近在学习一个时钟显示程序,觉得其中有好多值得细细体会、分析的地方。为了记住这些精妙之处,我把自己的这些理解和体会一并写在这个博客里,以备自己以后查询,也希望给正在学习这个程序的网友一个参考。先上这个程序的运行效果图:一、映射模式与时钟的“时针”、“分针”和“秒针”的摆动显示时钟运行显示时间时,时、分和秒针在程序代码中摆动时,程序代码是如何绘制才符合时钟显示的运行规律的呢?这部分代...原创 2019-06-23 18:06:03 · 532 阅读 · 0 评论 -
关于CDC::TabbedTextOut的理解
先上代码及输出结果:void CMainWindow::OnPaint (){ //获取DC CPaintDC dc(this); CString str = _T("姓名\t年龄\t性别\t学历\t爱好"); int TabArray[4]; TabArray[0] = 160; TabArray[1] = 250; TabArray[2] = 340; TabArr...原创 2019-04-09 21:01:20 · 747 阅读 · 0 评论 -
关于VC++ Lineto画线函数的宽度的理解与疑问
今天在一本vc++编程书上看到说:Rectangle函数在画矩形时,比如:CRect(0,0,8,4)时,画出的矩形最右边落在x=7,最下边落在y=3上时,很惊讶(原谅初学者的无知!)。如下图黄色范围所示:继而想到Lineto画线函数在宽度不为1的情况下,它又是怎么画线的呢?于是作了下面的测试:void CMainWindow::OnPaint (){ //获取...原创 2019-04-07 11:09:04 · 1753 阅读 · 0 评论 -
网络编程中:UNICODE字符串与Multibyte字符串之间的转换问题
在网络编程中,经常用到一些参数为Multibyte字符串为参数的函数。如果编程环境是在UNICODE字符下,就要频繁涉及到UNICODE字符串与Multibyte字符串之间的转换问题。处理不当,字符串就不能正常显示,出现很多乱码,让人头疼!近日在参照书籍用WSASOCKET模仿聊天室的编程中,就遇到这个头疼的问题。特别是当把编程环境设为UNICODE字符集后,更是连程序都没有办法启动了。经过不断...原创 2019-08-07 14:34:13 · 645 阅读 · 0 评论