小弟有3个疑惑,各位兄弟不吝赐教。
1:
用win32 sdk编写的窗口和控件,能否用调用mfc的函数。
2:
当启动一个exe或dll文件的时候,其内存映射文件映射的是整个exe文件,还是分节映射。当dll被加载之后,其全局变量是否被映射到exe的全局变量节中,还是在他自己的全局变量节
3:
当qq窗口移动到屏幕的边缘的时候,当鼠标不在其上时候,自动隐藏。请问这是怎么实现的
1:
用win32 sdk编写的窗口和控件,能否用调用mfc的函数。
2:
当启动一个exe或dll文件的时候,其内存映射文件映射的是整个exe文件,还是分节映射。当dll被加载之后,其全局变量是否被映射到exe的全局变量节中,还是在他自己的全局变量节
3:
当qq窗口移动到屏幕的边缘的时候,当鼠标不在其上时候,自动隐藏。请问这是怎么实现的
第一个问题 当然能用mfc 函数 只要有头文件就可以..
第二个问题 不太清楚第三个问题 鼠标在移动的时候对程序来说是一个事件 可以捕捉 鼠标的坐标,只要鼠标的坐标在程序的坐标范围内就可以触发一个事件....
对于第一个我的意思是,已经用sdk创建了一个窗体,现在是能否用mfc中的函数来修改。比如:
一个对话框中editbox的id为IDC_EDIT,这个对话框被创建在一个windows应用程序的工程里创建的,而非mfc工程。那么此时可否用(CWnd*)::GetDlgItem( IDC_EDIT )来取得editbox的指针。
要看工程是否MFC的,如果不是,不能3.响应WM_MOUSELEAVE,先用TrackMouseEvent
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(TRACKMOUSEEVENT);
tme.dwFlags = TME_LEAVE;
tme.hwndTrack = hWnd;
TrackMouseEvent(&tme));
一个对话框中editbox的id为IDC_EDIT,这个对话框被创建在一个windows应用程序的工程里创建的,而非mfc工程。那么此时可否用(CWnd*)::GetDlgItem( IDC_EDIT )来取得editbox的指针。================================================
可以
mfc中
CWnd::GetDlgItem
CWnd* GetDlgItem( int nID ) const;
那么在sdk中,有
HWND GetDlgItem(
HWND hDlg, // handle to dialog box
int nIDDlgItem // control identifier
);你查一下msdn,就发现有不同的选项给你选择的
要看工程是否MFC的,如果不是,不能=================================假如,我要取得desktop上的listview控件,可如下实现:
CListCtrl *pDeskListView = 0;
pDeskListView = CListCtrl::FindWindow( ... );
FindWindow里面的是desktop的listview的类名或者标题。想问的就是,这样得到的指针能否用来操作listview项。谢谢
通过这个句柄来操作listview,不过这样会比较麻烦,没有用mfc来的方便如果要用CListCtrl要包含相关头文件阿什么的
handsomerun(毛毛) ( ) 信誉:115 不知道desktop是不是用mfc编写的,要不是的话,当使用CListCtrl::FindWindow( )的时候,是不是要创建一个临时的CListCtrl对象啊。也就是说当不是用mfc编写的窗口的时候,调用mfc里的函数如以上所示,是不是要创建临时对象。
一般情况下可以使用MFC,如果不是MFC工程的话,可能需要做一些设置。因为MFC也是C/C++类库。
第二个问题:
据我推断,肯定是整个文件。主要是多节映身严重影响性能,现在实际应用也少了。第三个问题:
主要是响应鼠标进入和离开,请查看WM_MOUSELEAVE和WM_MOUSEHOVER,具体请查看MSDN吧
能不能给给连接或者提示,谢谢