05 2013 档案
摘要:今天在上机的时候尝试着去画一个图像。当时的想法是先创建一个内存DC,先在内存DC上绘图,然后再用bitblt函数将其拷贝到桌面DC上。代码很简单,先这样:CDC memDC;memDC.CreateCompatibleDC(pDC);……pDC->BitBlt(……);后面的相比你都明白的,但是在memDC上的绘图始终在pDC上看不到。回来之后再好好的看了看才发现,想在memDC上绘图并有效,必须还要创建一个兼容位图加选进去,才能绘图……坑死了~选中之后,果然就好使了……
阅读全文
摘要:刚才在看串口数据的接收问题。这里的话,最开始的时候需要在打开串口后,对串口使用SetCommEvent函数去设置通知事件。这里又涉及一个问题,就是一般SetCommEvent函数的第二个事件参数为EV_RXCHAR第一个参数不用想了,就是文件句柄。响应这个事件的函数是:WaitCommEvent在一个已经完成了的串口类中,也是调用这个函数去响应消息的,而且在后台线程函数中,这个函数同时调用了两个时间等待函数。第一个等待事件响应的就是这个函数,第二个则是著名的waitmultipleobjects函数。然后在其代码注释中,那位大神说这个函数在调用之后不会持续等待,而是立刻返回,原因就是这个串口是
阅读全文
摘要:还是写那个串口调试助手出现的问题。这个函数原型如下:DWORD WaitForMultipleObjects( DWORD nCount, // number of handles in array CONST HANDLE*lpHandles, // object-handle array BOOL fWaitAll, // wait option DWORD dwMilliseconds // time-out interval);第一个参数就是句柄数组的成员数。第二个参数是句柄数组的地址第三个是一个等待选项,就是在这出的问...
阅读全文
摘要:刚才在写一个小程序,需要在类中添加一个能开启后台线程的函数。为了能让线程函数参入到类中的数据处理,这个线程函数要么作为类的成员函数,要么设为友元函数。不过我对友元函数不太感冒,就没采用这种方法。但是,如果单纯的作为类的成员函数,那么这个又存在一个问题,就是因为成员函数隐含的this指针会导致线程函数不满足AfxBeginThread以及_beingthreadex等函数的参数要求。刚才在这里卡住了。函数声明都没问题,但是就差在this指针上。所以只要除去this指针就能实现要求。我们知道C++中,静态成员函数是不存在this指针的。接下来就很简单了,函数前面添加一个static就OK了~但是另
阅读全文
摘要:今天中午的时候解决了这个问题。在使用document view结构的MFC程序时,在view上进行绘图绘画很简单,但是很容易导致的后果就是当窗口的尺寸改变的时候由于重绘会导致闪屏。这个效果还是比较捉急的,因为很难看。在网上看了什么双缓冲法解决闪屏问题,我觉得吧,有的真的是纯属扯淡。他们的代码我拿来试过的,都不好使,闪屏依旧。而且最恶心的就是只有一份原创,其余的好多都是抄的,连个引用都没有。首先,闪屏闪的时候能发现闪烁的背景色是白色,这个就说明了在重绘的时候,发生了屏幕擦写问题。在vc2010版的对应的MFC中,这个消息开头是是WM_ERASEBK。。。具体记不清了,我也懒得开编译器,但是只要你
阅读全文
摘要:刚才看到这个函数,可以用来改变窗口的属性,甚至如窗口过程的地址。百度百科上将的比较详细,链接如下:http://baike.baidu.com/view/1080272.htm
阅读全文
摘要:1 void qsort(int * array, int length) 2 { 3 if(length = KeyWord && j > i)11 -- j;12 swap(array[j], array[i]);13 while(array[i] i)14 ++ i;15 swap(array[i], array[j]);16 }17 qsort(array, i);18 qsort(&array[i] + 1, length - i - 1);19 }快排...
阅读全文
摘要:这个函数隶属CListCtrl.在调用前,必须要先设置索引项,调用该函数将会无效。索引项设置使用InsertItem函数。示例代码如下: 1 m_listctrl.InsertColumn(0,L"属性",LVCFMT_CENTER,58); 2 m_listctrl.InsertColumn(1,L"数值",LVCFMT_CENTER,58); 3 4 TCHAR * pItemPro[] ={ 5 L"长度", 6 L"宽度" 7 }; 8 m_listctrl.InsertItem(0,L"&quo
阅读全文
摘要:在使用多列的列表框中可以使用CCtrlList类。唯一需要注意的就是,一定要在其属性的View选项中选中 Report否则再多的努力都是没结果的。
阅读全文