您的位置:首页 > 其它

vc6使用点滴积累

2007-12-28 12:51 609 查看
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(Radio的ID)->ShowWindow(SW_HIDE) 语句来实现;

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

3. Radio多组使用

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

注意:在使用较多的Radio控件时,其成员变量最好使用一一对应的变量,不要用数组来代替,否则有可能使类向导不能正常解析,从而使类向导不能正常使用,最后造成不可预测的问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: