今天多线程编程练习中的一些收获

尝试把<<深入浅出MFC>>中第14章的那个多线程例子编出来,不过弄了一天也还是不知道如何获取SDI中那个视图的handle.不过今天也学到了不少得到窗口handle的方法,下面总结一下:

第一种方法:CWnd这个类中有一个成员属性m_hWnd,它是用来保存窗口句柄的.CView继承了CWnd,SDI中的那个视图类继承了CView.所以我们通过访问m_hWnd就可以得到窗口的句柄了.

第二种方法:使用FindWindw和FindWindowEX这两个API.

HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) 

HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter,LPCTSTR lpClassName, LPCTSTR lpWindowName)

这两个API是通过类名和窗口标题来获取窗口的句柄的.

第三种方法:获取当前鼠标光标位置的窗口的句柄.

ClientToScreen(&point);
CWnd* pWnd = CWnd::WindowFromPoint(point);

HWND hwndCurr = pWnd->GetSafeHwnd();

上面三行代码就可以获取当前鼠标位置所在窗口的窗口句柄.

还有其它很多种获得窗口句柄的方法,不过暂时不会总结,以后再补充吧.

再来说说今天遇到的其它问题吧.

GetDC(hWnd)用来返回窗口的句柄,如果输入参数为0的话,就反回整个屏幕(显示器屏幕)的句柄.

定义全局变量的时候不要在头文件中定义,应该在源文件中定义.

当类成员函数被声明为static的时候,则在这个函数里面不能使用另一个类里面的成员变量.

唉,不说了,好像这样说了没啥意义.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值