惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
Spread Privacy
Spread Privacy
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
TaoSecurity Blog
TaoSecurity Blog
S
Secure Thoughts
Google Online Security Blog
Google Online Security Blog
H
Heimdal Security Blog
N
News | PayPal Newsroom
Attack and Defense Labs
Attack and Defense Labs
Recent Commits to openclaw:main
Recent Commits to openclaw:main
博客园 - 【当耐特】
Webroot Blog
Webroot Blog
小众软件
小众软件
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
PCI Perspectives
PCI Perspectives
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Cloudflare Blog
Cloudbric
Cloudbric
AI
AI
WordPress大学
WordPress大学
博客园 - 聂微东
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
Hacker News: Ask HN
Hacker News: Ask HN
H
Hacker News: Front Page
博客园 - Franky
V
V2EX
Schneier on Security
Schneier on Security
G
GRAHAM CLULEY
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
H
Help Net Security
量子位
S
Security @ Cisco Blogs
大猫的无限游戏
大猫的无限游戏
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recorded Future
Recorded Future
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
C
Cisco Blogs
S
Security Affairs

博客园 - sopper

Visual Assist X设置 转 mac入门系列教程之二–-Mac与众不同(4) 转 mac入门系列教程之二–-Mac与众不同(3) 转 mac入门系列教程之二–-Mac与众不同(2) 转 mac入门系列教程之二–Mac与众不同(1) 转 C++带有指针数组的结构体转换为C#可用的结构体 C#调用C++版本dll时的类型转换要注意的问题 小技巧 瑞星版本20.49.30的Bug C++控件的数据交换和数据校验 VC6类向导对窗体按钮添加的消息映射代码 c/c++下常见的内存错误及其对策 CORBA_TAO的环境配置 - sopper - 博客园 再议ManualResetEvent 异步socket的线程分配(C#) 你知道main函数参数的用处吗? - sopper - 博客园 你能确定这段代码的输出结果吗? 小技巧避免项目中的大隐患 提给dudu的一个小建议
vc6使用点滴积累
sopper · 2007-12-28 · via 博客园 - sopper
 

1.       头文件里注意变量声明的位置

最好不要放在标为红色字体的地方,因为“{{AFX_DATA()……}}”这种字样的代码是供类向导定位使用的(下面称为向导定位标识符),在项目小的情况下可能不会出现什么问题,在大项目下则有可能影响类向导准确定位,而造成出现变量值被冲掉的危险,猜测如果位置错误则可能是向导定位标识符里声明的变量,在内存里冲掉了自定义的变量;(如果有人可以解释原因,还望赐教)

 public:

       LONG    m_lElmID;

       BYTE    m_ucSlot;

       BYTE    m_ucVcg;

       MSAPPROTOCOLTUOFEREG m_reg20;

       MSAPPROTOCOLTUOFEREG m_reg22;

       MSAPPROTOCOLTUOFEREG m_lreg22;

       MSAPPROTOCOLTUOFEREMOTECFGPARA m_struWorkMode;

       tagMsapTuMc4PortPara m_struMC4PortPara;

// Construction

public:

       void fSetWorkModeToTuMC4();

       void fGetWorkModeFromTuMC4();

       void fSetWorkModeToDev();

       void fGetWorkModeFromDev();

       CDialogMsapTuofeRemoteWorkMode(CWnd* pParent = NULL);   // standard constructor

//变量最好声明在{{……}}的上面

// Dialog Data

       //{{AFX_DATA(CDialogMsapTuofeRemoteWorkMode)

       enum { IDD = IDD_DIALOG_MSAP_TUOFE_REMOTE_WORKMODE };

       int           m_nBuad;

       int           m_nDuplex;

       int           m_nSelMode;

       int           m_nSpeed;

       int           m_nSndBuad;

       int           m_nFlowCtrl;

       int           m_nFaultPass;

       //}}AFX_DATA

       //变量最好不要声明在此处

// Overrides

       // ClassWizard generated virtual function overrides

       //{{AFX_VIRTUAL(CDialogMsapTuofeRemoteWorkMode)

       protected:

       virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

       //}}AFX_VIRTUAL

2.       使用ShowWindow()函数

例:如果要实现一个在某一条件下隐藏Radio控件的功能时,最好直接用 GetDlgItem(RadioID)->ShowWindow(SW_HIDE)   语句来实现;

最好不要通过类向导定义一个CButton类型的变量m_btnFaultPass,然后通过m_btnFaultPass.ShowWindow(SW_HIDE)这条语句来实现。(发现有好多人在这么使用)我也不明白原因,今天修改的bug里就是这样引起的(直接引起程序死掉),后删除变量后使用上面那种方法,就正常了

3.       Radio多组使用

例如:使用3Radio控件,首先设置Tab Order的顺序,具体实现是在Radio所处的Dialog下操作 CtrlD,然后连续点击Radio,使其值连续起来,然后连续的两个Radio设置一个默认值,默认值指得是设置其属性里的Group选项,这样就可以去用你的逻辑代码对其赋值取值了。

注意:在使用较多的Radio控件时,其成员变量最好使用一一对应的变量,不要用数组来代替,否则有可能使类向导不能正常解析,从而使类向导不能正常使用,最后造成不可预测的问题。