window的开始菜单里有个运行项,点击后,如果用户没有输入内容,则确定按钮是灰的,当有输入时马上变成可用,它应该是响应edit框的chang(消息记不太清了)消息,如果用户输入了字符,就调用EnableWindow函数使确定按铵钮可用,我想问的问题是:它是只要用用户输入了字符就调用EnableWindow函数呢,还是先判断一下确定按钮是否可能,如果不可能的时候才调用。即如下两种形式(函数的参数不一定对,理解意思就行了)
if(用户输入了字符)
{
    GetDlgItem(IDOK)->EnableWindow(ENABLED);
}if(用户输入了字符)
{
    if(GetDlgItem(IDOK)->IsWindowEabled())
        GetDlgItem(IDOK)->EnableWindow(ENABLED);
}
表面上看第二种更合理,因为第一种做了很多无用功,但第二种又会造成流水线的阻塞,所以我想问问在专业的程序设计中,一般选择哪一种方法?

解决方案 »

  1.   

    tryber(Go with the CWnd),IsWindowEabled()执行时一定比EnableWindow(ENABLED);用时间少的多,因为后者会造成窗口的重绘,这一点是不用怀疑的,为什么这么肯定的事你确还要争论呢?我想大家都会和我有同样的认为,我的意思是,第二种多了个if语句,会增加阻塞流水线的概率。