引言: 查看MFC中与CListCtrl和CListView相关的源码时发现,CListView派生自CWnd->CView->CCtrlView,而CListCtrl则直接派生自CWnd类,而CListView::GetListCtrl函数居然仅仅用了一句 return *(CListC...
摘要:
虚拟指令意义 (括号内代码为注释。名称下的为同义代码,有相同的意思,主要是为了wqx里书写方便) 名称 寻址方式 字节码 代码格式 伪代码表示1.ph1 立即 ph1 #num [sp]<-num,0,0,0; sp+=4; (栈单元大小为4bytes,不够的部分用0补齐,下同) (phs) 直接 ph1 addr [sp]<-{addr},0,0,0; sp+=4......
摘要:
1.
也谈在unix系统中杀死相关终端的进程
2.
从 ifconfig 中得到 ip地址
3.
赶走一些你不希望进入的用户
4.
shell编程
5.
bash中对变量的操作
6.
bash中的特殊字符
7.
bash中的变量
8.
bash最常见的激活模式
9.
shell编程例子 ......
CListView::GetListCtrl是如何将CListView*转换为CListCtrl*的 查看mfc中与clistctrl与clistview相关的源码时发现,clistview派生自cwnd->cview->cctrlview,而clistctrl则直接派生自cwnd类,而clistview::getlistctrl函数居然仅仅用了一句 return *(clistctrl*)this; 将clistview活生生的转换成了clistctrl,百思不得其解,后在csdn论坛中向众高手求助,终于明白了个中原由. csdn论坛求助帖地址:http://community.csdn.net/expert/topic/3542/3542830.xml?temp=.3308374 【程序编程相关:
Linux/Unix 下对文件操作的学习】 【推荐阅读:
取得一个透明颜色】 【扩展信息:
ListView的使用】 原帖内容如下: 主 题: mfc中的代码,不敢相信自己会c++了........ 作 者: qrlvls (airesearcher) 信 誉 值: 110 所属论坛: vc/mfc 界面 问题点数: 200 回复次数: 25 发表时间: 2004-11-11 11:44:52 _afxcview_inline clistctrl& clistview::getlistctrl() const { return *(clistctrl*)this; } 从上面代码来看,clistview的指针是可以强制转换成clistctrl指针的 但是看过mfc中代码后发现,clistview派生自cwnd->cview->cctrlview 而clistctrl直接派生自cwnd,cwnd中没有getlistctrl这样的函数,而且clistview的实现中也没有重载clistctrl强制转换操作符 现在郁闷中.....求解!
回复人: happyparrot(快乐鹦鹉) ( ) 信誉:155 2004-11-11 11:57:29 得分:0 指针的强制转换不需要有什么强制转换函数. 只需要两个指针对象的空间顺序兼容就可以了. 回复人: dentistrydoctor(雅克医生<改行做程序员了>) ( ) 信誉:162 2004-11-11 11:58:08 得分:0 bool cctrlview::precreatewindow(createstruct& cs) { assert(cs.lpszclass == null); cs.lpszclass = m_strclass;
// initialize common controls verify(afxdeferregisterclass(afx_wndcommctls_reg)); afxdeferregisterclass(afx_wndcommctlsnew_reg);
// map default cview style to default style // ws_border is insignificant if ((cs.style | ws_border) == afx_ws_default_view) cs.style = m_dwdefaultstyle & (cs.style | ~ws_border);
return cview::precreatewindow(cs); } 实际上 cctrlview 直接以 c_listview (对于ctreeviewctrl就是wc_tree) 创建的, 所以可以这样认为clistview实际上也是clistctrl的派生类,所以那样转换就没有任何问题. 这是mfc为了避免多继续而采用的变通方式. class afx_novtable cctrlview : public cview
可能与cctrlview没有虚函数表有关吧,因为一般的成函数并不占其实例的内存空间,并且clistview汉有任务成员变量,所以这样应该是安全的. 回复人: roger_ding(海天一色) ( ) 信誉:103 2004-11-11 12:49:22 得分:0 先说下,clistctrl的类中只继承了两个虚函数,如下 virtual void drawitem(lpdrawitemstruct lpdrawitemstruct); ...
下一页 摘要:静态页面的锚点问题应该都不会有什么问题,今天遇到一个关于动态数据显示页面的锚点问题,研究了一下,拿出来和大家分享。
锚点是“top”,可以放在页面的任何位置,一般是页首。程序红色部分是关键,就是对锚点出现的判断,我设置的数值是4,意思是出现4个动态数据就出现一个锚点,少于4个时因为还在同一个页面,就不需要有锚点出现,这个数值可以根据实际情况进行修改。为了对页面进行进行美化......