07 2011 档案

摘要:遍历窗体所有控件代码如下:CWnd* pwndChild = GetWindow(GW_CHILD); while (pwndChild){ //....to do something pwndChild = pwndChild->GetNextWindow();}如果只想得到某一类 ,比如button的。代码如下:// 遍历得到页面中的所有Button控件,依次设定其样式和颜色 CWnd* pWnd = GetWindow(GW_CHILD); char cClassName[255]={0}; while(pWnd) { //得到控件的... 阅读全文
posted @ 2011-07-25 18:55 likebeta 阅读(969) 评论(0) 推荐(0)
摘要:用鼠标单击窗口标题条以外区域移动窗口移动标准窗口是通过用鼠标单击窗口标题条来实现的,但对于没有标题条的窗口, 就需要用鼠标单击窗口标题条以外区域来移动窗口。有两种方法可以达到这一目标。 方法一:当窗口确定鼠标位置时,Windows向窗口发送WM_NCHITTEST消息,可以处 理该消息,使得只要鼠标在窗口内,Windows便认为鼠标在标题条上。这需要重载 CWnd类处理WM_NCHITTEST消息的OnNcHitTest函数,在函数中调用父类的该函数, 如果返回HTCLIENT,说明鼠标在窗口客户区内,使重载函数返回HTCAPTION, 使Windows误认为鼠标处于标题条上。 下例是使用.. 阅读全文
posted @ 2011-07-25 15:37 likebeta 阅读(892) 评论(0) 推荐(0)
摘要:有没有想过在Windows环境下实现苹果电脑窗口界面的风格?下面就以实现苹果电脑窗口风格为例,进行一次奇妙的旅行。原 理仔细观察苹果窗口,发现和Windows窗口的区别主要体现在标题栏和控制按钮(即最小化、恢复、关闭按钮)。所以我们应该把主要精力集中在这两点上,直接对Windows窗口已有的标题栏和控制按钮进行修改。由于标题栏和控制按钮都属于非客户区,所以关键是获得非客户区的CDC,可以通过GetWindowDC()来获得。GetWindowDC()可以获得整个窗口的CDC,当然也包括非客户区的CDC,得到此CDC后,确定标题条的确切位置,就可以在标题栏上为所欲为了。如图1所示,在标题栏的位置 阅读全文
posted @ 2011-07-23 22:18 likebeta 阅读(439) 评论(0) 推荐(0)
摘要:很多同学在绘制UI时喜欢将窗口或者对话框设置成无边框无标题栏样式,然后在客户区里就可以”胡作非为“了,想干什么都行然而新手们包括笔者以前都遇到的一个问题是:对于对话框来说直接这样设置:ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED); 是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎么设置都不可行DWORD dwStyle = GetStyle();//获取旧样式 DWORD dwNewStyle = WS_OVERLAPPED | WS_VISIBLE| WS_SYSMENU |WS_MINI.. 阅读全文
posted @ 2011-07-23 22:15 likebeta 阅读(737) 评论(0) 推荐(0)
摘要:1. CListCtrl 样式及设置2. 扩展样式设置3. 数据插入4. 一直选中Item5. 选中和取消选中Item6. 得到CListCtrl中所有行的checkbox的状态7. 得到CListCtrl中所有选中行的序号8. 得到item的信息9. 得到CListCtrl的所有列的header字符串内容10. 使CListCtrl中一项可见,即滚动滚动条11. 得到CListCtrl列数12. 删除所有列13. 得到单击的CListCtrl的行列号14. 判断是否点击在CListCtrl的checkbox上15. 右键点击CListCtrl的item弹出菜单16. CListCtrl进行大 阅读全文
posted @ 2011-07-15 10:59 likebeta 阅读(599) 评论(0) 推荐(0)
摘要:structtagTime{intyear;intmonth;intday;};voidSet(inty,intm,intd,structtagTime*t)/*设置日期*/{t->year=y;t->month=m;t->day=d;}intIsLeapYear(intyear)/*是否闰年*/{return((year%4==0)&&(year%100!=0)||year%400==0);}intGetLastDay(structtagTimedate)/*得到date.month的最大天数*/{intnum;switch(date.month){case 阅读全文
posted @ 2011-07-14 17:01 likebeta 阅读(377) 评论(0) 推荐(0)
摘要://WSAEventSelect.h#include "CInitSocket.h"typedef struct _SOCKET_OBJ{ SOCKET sock; //套接字句柄 HANDLE hEvent; //与次套接字相关的事件对象句柄 sockaddr_in addrRemote; //客户端地址信息 _SOCKET_OBJ *pNext; //指向下一个SOCKET_OBJ对象,构成链表}SOCKET_OBJ,*PSOCKET_OBJ;typedef struct _THREAD_OBJ{ HANDLE hEvents[WSA_MAXIMUM_WAIT... 阅读全文
posted @ 2011-07-08 10:47 likebeta 阅读(838) 评论(0) 推荐(0)
摘要:#include "CInitSocket.h"#include <iostream>using namespace std;CInitSock initsocket;int main(){//时间句柄和套接字句柄数组WSAEVENT eventArrary[WSA_MAXIMUM_WAIT_EVENTS];SOCKET sockArray[WSA_MAXIMUM_WAIT_EVENTS];int nEventTotal=0; //事件总数USHORT nPort=4567;SOCKET ListenSocket=socket(AF_INET,SOCK_STRE 阅读全文
posted @ 2011-07-08 09:31 likebeta 阅读(814) 评论(0) 推荐(0)
摘要:#include <WINSOCK2.H>#pragma comment(lib,"ws2_32")class CInitSock{public: CInitSock(BYTE minorVer=2,BYTE majorVer=2) { WSADATA wsaData; WORD sockVersion=MAKEWORD(minorVer,majorVer); if (WSAStartup(sockVersion,&wsaData)!=0) { exit(0); } if ( LOBYTE( wsaData.wVersion ) != minorVer 阅读全文
posted @ 2011-07-08 09:29 likebeta 阅读(607) 评论(0) 推荐(0)
摘要:#include <WINSOCK2.H>#include <iostream>#pragma comment(lib,"ws2_32")int main(){using namespace std;WSADATA wsaData;WORD sockVersion=MAKEWORD(2,2);if (WSAStartup(sockVersion,&wsaData)!=0){ cout<<"套接字库加载失败!"; exit(0);}if ( LOBYTE( wsaData.wVersion ) != 2 || H 阅读全文
posted @ 2011-07-08 09:09 likebeta 阅读(1259) 评论(0) 推荐(0)
摘要:UDP 是USER DATAGRAM PROTOCAL 的简称,是一种在网络上提供的无连接的传输协议。用UDP通信有以 下特点:1、 数据传输不用建立连接,所以不可靠;2、 数据的发送是面向整个网络的,任何一台在局域网内的计算机都可以接收到相同的数据;参考其他地方,弄一个简单的例子,希望起到抛砖引玉的作用,同时希望能给初次接触UDP之BROADCAST编程的童鞋一些参考。//recv端struct SendData{ ULONG DataSize; char DataData[1024];};BOOL CUdpServerDlg::OnInitDialog(){ CDialog::OnInit 阅读全文
posted @ 2011-07-07 20:47 likebeta 阅读(898) 评论(0) 推荐(0)
摘要:一、观察模仿前最重要的一步就是观察,经过半天对QQ的摆弄和摸索,总结出了以下一些特点:1、窗口开始粘附时,检测的是鼠标坐标与桌面边界的距离,特别地,粘附在下面的时候,检测的是与任务栏的距离;2、在向上移动窗口时,窗口边界永远不会超出桌面上面边界;3、窗口是个 TopMost 风格;4、当窗口粘附在上面、左边或右边并显示时,你把鼠标移动到最顶端,光标变成改变窗口大小的图标,而单单是把窗口的top坐标设置为0是不行的;5、粘附在下面的时候,当处于移动状态,那么窗口的底边是与任务栏顶边对齐的,但从隐藏到显示的时候,窗口的底端是与屏幕底边对齐的;6、隐藏后显露出来的那条线可能是一个Border,但肯定 阅读全文
posted @ 2011-07-03 17:43 likebeta 阅读(3121) 评论(0) 推荐(0)
摘要:有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。CreateProcess因为使用复杂,比较少用。 WinExec主要运行EXE文件。如:WinExec(’Notepad.exe Readme.txt’, SW_SHOW); ShellExecute不仅可以运行EXE文件,也可以运行已经关联的文件。 首先必须引用shellapi.pas单元:uses ShellAPI; 1.标准用法 ShellExecute函数原型及参数含义如下: function ShellExecute(hWnd: HWND; Operation, File... 阅读全文
posted @ 2011-07-01 16:18 likebeta 阅读(3846) 评论(0) 推荐(1)
摘要:删除android-sdk-windows\.android\avd\或C:\Documents and Settings\@USER@\.android\avd对应版本\下的以.lock结尾的文件夹就行 阅读全文
posted @ 2011-07-01 16:16 likebeta 阅读(210) 评论(0) 推荐(0)
摘要:综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。<注意下面的程序都是分块拷贝的>方法一:我用得做多的方法是创建互斥体Mutex,使用Mutex代码比较简洁,但是此时不能取得已经启动的实例窗口局柄,因此无法激活已经启动的实例窗口,代码如下:View Code // ----------------------------------------------------- 阅读全文
posted @ 2011-07-01 16:05 likebeta 阅读(5547) 评论(0) 推荐(1)