请先理解我的意思,我用c++编了过程类似这样的一个程序:
void operate()
{
char a,b;
while(1)
{
cin>>a;.....................step1
if(a=='@')..................step2
{
cin>>b;...................step3
if(...) break;
...;
}
}
}
int main(int argc, char* argv[])
{
...;
...;
operate();
fuctionXX();
}
我们都知道在c++下,不输入a,step2和step3就不会执行,operate没执行完,fuction就不会开始(我知道这都是废话),而现在我要在VC下,用点击按钮,把按钮的名称传递给a,代替用cin输入传递给a,说到这里肯定有人会建议,当点击按钮时,调用operate。行不通,因为有20个按钮,而且operate里面要连接输入2次,即点击2次按钮。还有个问题,在程序开始时,就要调用operate,operare结束,整个程序就结束,如果我把operate放到OnInitDialog()里面,operate没结束,OnInitDialog()也就没结束,那么其它的会不会执行,如:afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();等。
不知道今天高手是不是都休息了。
void operate()
{
char a,b;
while(1)
{
cin>>a;.....................step1
if(a=='@')..................step2
{
cin>>b;...................step3
if(...) break;
...;
}
}
}
int main(int argc, char* argv[])
{
...;
...;
operate();
fuctionXX();
}
我们都知道在c++下,不输入a,step2和step3就不会执行,operate没执行完,fuction就不会开始(我知道这都是废话),而现在我要在VC下,用点击按钮,把按钮的名称传递给a,代替用cin输入传递给a,说到这里肯定有人会建议,当点击按钮时,调用operate。行不通,因为有20个按钮,而且operate里面要连接输入2次,即点击2次按钮。还有个问题,在程序开始时,就要调用operate,operare结束,整个程序就结束,如果我把operate放到OnInitDialog()里面,operate没结束,OnInitDialog()也就没结束,那么其它的会不会执行,如:afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();等。
不知道今天高手是不是都休息了。
GetDlgItem(IDDDDDD)->GetWindowText(str);
注意console和windows的区别及消息机制
int F;
初始化 F = 0;
然后在按钮的单击事件中写上
GetDlgItem(ID)->GetWindowText(str); //这个ID写对应事件的按钮ID
if(sTmp.Replace("@","@") != 0 && F != 1)
{
F = 1;
}
if(sTmp.Replace("#","#") != 0 && F == 1)
{
//两个按钮依次被点中
}
随便一写,不知对不对!
我现在只想在step1处,把用键盘输入(c++)换成用按钮输入(VC).