- 博客(19)
- 资源 (6)
- 收藏
- 关注
原创 网络编程中:UNICODE字符串与Multibyte字符串之间的转换问题
在网络编程中,经常用到一些参数为Multibyte字符串为参数的函数。如果编程环境是在UNICODE字符下,就要频繁涉及到UNICODE字符串与Multibyte字符串之间的转换问题。处理不当,字符串就不能正常显示,出现很多乱码,让人头疼!近日在参照书籍用WSASOCKET模仿聊天室的编程中,就遇到这个头疼的问题。特别是当把编程环境设为UNICODE字符集后,更是连程序都没有办法启动了。经过不断...
2019-08-07 14:34:13
714
原创 异步执行的线程之间:如何判断并等待线程的结束
一直没弄明白异步执行的线程之间,如果一个线程要等待其它必要的线程先完成才能继续执行这个线程的话,该如何做呢?直到到论坛问了一些大神,才得到点启示。形成实例,却又状况百出。直到今天,终于弄出想要的效果了。说一说我的做法:目标是在对话框中,单击按钮先后启动三个线程:线程1,2启动最初为挂起状态,等完成句柄复制后才启动。线程3立即执行并启动线程同步事件,让线程1,2 执行被锁住的代码。等待线...
2019-08-04 12:19:25
2259
原创 多线程程序:CSemaphore的测试
源码:https://download.youkuaiyun.com/download/weixin_44027440/11440839
2019-07-28 08:34:15
239
原创 模拟售票大厅实例——多线程时访问共享变量时的安全(CMutex或CCriticalSection的应用)
当程序运行时,可以通过多线程来提高程序运行的效率和拥有更好的体验。但多线程(或多进程)同时也带来很多的问题:最严重的莫过于对同一个对象或变量访问时,由于线程运行异步的原因,会造成程序运行出现无法控制的重大错误。对此,MFC有控制线程或进程同步的封装类:如CMutex或CCriticalSection等等。详细用法不说,直接上代码:源码:https://download.youkuaiyun.com/...
2019-07-24 22:40:21
486
原创 透明窗口的实现并在透明窗口上能画鼠标轨迹、文字输出和截图放大,小窗口浮动等功能,
代码如下: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
506
转载 (转载)位图的光栅操作及ROP码解析
作者:snowstart来源:优快云原文:https://blog.youkuaiyun.com/snowstart/article/details/326715版权声明:本文为博主原创文章,转载请附上博文链接!
2019-07-04 04:31:54
390
原创 利用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
600
原创 关于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
1423
原创 用CDC::StretchBlt()复制位图时,如何保证位图显示“不失真”?
用CDC::StretchBlt()复制位图时,如果源图像长度和宽度比目标区域的宽度、高度大或小,那么复制位图时,目标区域内复制的图像,宽度或高度两个方向或其中一个方向可能会出现扭曲,使得图像的比例不协调,位图复制有点“失真”。怎么保持原图的样子呢?所谓保持原样,实际上就是保持跟源图像相同的纵横比。基于这个思路:复制位图时,以源图像的纵横比为准,计算出在目标区域内,能最大限度保持相同纵横比例、...
2019-06-28 23:58:50
664
原创 VC++:菜单的使用总结
菜单是windows应用程序经常使用的资源之一。从今天开始,把有关菜单的创建及使用等各方面的基本用法总结到一起,算是做个笔记吧!准备一天写一点,陆陆续续完成!一、菜单的创建:(一)VC++菜单通过编辑资源文件直接创建菜单可以自己编写菜单资源文件来完成来手工创建菜单,这与编程方法创建菜单不同。用这种方法创建菜单分两步:1、在rc资源文件中编写菜单资源:首先,要用其它文字编辑...
2019-06-24 22:10:59
4604
1
原创 有关vc++ 时钟程序的学习与体会
最近在学习一个时钟显示程序,觉得其中有好多值得细细体会、分析的地方。为了记住这些精妙之处,我把自己的这些理解和体会一并写在这个博客里,以备自己以后查询,也希望给正在学习这个程序的网友一个参考。先上这个程序的运行效果图:一、映射模式与时钟的“时针”、“分针”和“秒针”的摆动显示时钟运行显示时间时,时、分和秒针在程序代码中摆动时,程序代码是如何绘制才符合时钟显示的运行规律的呢?这部分代...
2019-06-23 18:06:03
585
原创 关于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
829
原创 关于VC++ Lineto画线函数的宽度的理解与疑问
今天在一本vc++编程书上看到说:Rectangle函数在画矩形时,比如:CRect(0,0,8,4)时,画出的矩形最右边落在x=7,最下边落在y=3上时,很惊讶(原谅初学者的无知!)。如下图黄色范围所示:继而想到Lineto画线函数在宽度不为1的情况下,它又是怎么画线的呢?于是作了下面的测试:void CMainWindow::OnPaint (){ //获取...
2019-04-07 11:09:04
1837
原创 第一个MFC小程序:鼠标按下并拖动画线,自动擦除移动过的轨迹
开始学习VC++MFC程序了!了解了一些如何在窗口上面绘画的功能,突然联想到平时在使用一些绘图软件或其它涉及到画线的程序的一个小功能:需要画一条直线时,总是在鼠标左键按下时,开始画线;鼠标拖动时,始终显示鼠标左键按下时的起点与鼠标最新位置之间的连线。这样,使用者可以清楚地看到自己准备要画的线的位置,直到连线刚好是自己想要的位置时,鼠标左键释放,连线完成。 我想这个...
2019-03-17 18:40:31
3436
原创 根据二叉树的前序和中序排列创建二叉树(使用vector实现)
二叉树的前序排列与中序排列可以确定唯一的一颗二叉树。基本原理:二叉树前序排列是“根结点——>左子树——>右子树”,中序排列是“左子树——根结点——右子树”。如下图所示二叉树:数字,前序为:1,2,4,5,6,3,7,8,9; 中序为:4,2,5,6,1,7,3,9,8。字符,前序为:A,B,C,D,E,F,G; 中序为:C,B,E,D,A,F,G。前序和中序的关联...
2019-03-10 13:51:05
1224
原创 使用List链表实现“霍夫曼树”
霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的...
2019-03-09 00:18:27
273
原创 二叉树图形直观显示的完全实现
↵经过进一步完善,二叉树的图形直观显示终于完成了。看效果图:下面是原代码:1、main()//*****************************************************************************************#include<iostream>#include<sstream>...
2019-03-02 12:08:50
2528
原创 二叉树的图形直观显示的初步实现
学习到了二叉树,认识到二叉树太有作用了。但每一次创建了二叉树,总想直观看一下二叉树的结序,以方便程序的调试。但二叉树的结构怎样才能直观显示出来呢?看了网上的一些资料和做法,要么看不懂,要么不满意。于是试着自己写代码,看能否达到目的。功夫不负有心人,经过不懈努力,终于弄出一个初步的结果。兴奋!!!本想进一步完善,添上一些符号把节点连起来再发出来,实在高兴忍不住了……哈哈!!!先上结果的图片:...
2019-02-27 19:10:53
1879
原创 C++基数排序之队列实现
一直以来对编程语言方面有特别的喜好,虽然咱是一个小白!这么多年过去了,涉及过不少编程语言,多是浅尝则止,学到皮毛而已。想到非自己的本行,知识水平有限,深入不到哪里去,曾经很长一段时间暂时忘却了它。不料最近又突发兴致,慢慢又捡起以前所学的皮毛,开始学习C++了……呵呵,没办法,喜欢嘛!总感觉自己这辈子走错了行一样……唉,牢骚!就当防止老年痴呆吧!哈哈~离题万里了 !最近学到有关数据结构的,兴趣...
2019-02-21 22:36:02
674
UNICODE和Multibyte编程环境下:双字节与单字节字符串的转换:Chat.rar
2019-08-07
线程之间的等待:WaitAllThreadsOver.rar
2019-08-04
模拟售票大厅售票-SaleTickets-2.rar
2019-07-25
模拟售票大厅售票-SaleTickets.rar
2019-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人