プログラム
Re:プログラム
簡単の為9個ではなく2個にしてます。①,②の値がそれぞれp1,p2です。
void CMyDlg::OnButton1()
{
というむちゃくちゃな文になってます。
void CMyDlg::OnButton1()
{
hantei(); } void CMyDlg::OnButton2() { hantei(); } void CMyDlg::hantei() { BOOL sw; CString p1,p2; if(p1=='○'||p2=='○'){ sw=true;//値が○のときtrueとする } else{ sw=false; //×のときfalseとする if(sw==true){ SetDlgItemText(IDC_STATIC1,p1); sw=false; } else{ SetDlgItemText(IDC_STATIC1,p1); sw=true; } if(sw==true){ SetDlgItemText(IDC_STATIC2,p2); sw=false; } else{ SetDlgItemText(IDC_STATIC2,p2); sw=true; } }}
というむちゃくちゃな文になってます。
Re:プログラム
const char* CMyDlg::GetCheckMark(){ const char* mark; if(mSetMarkIsMaru){ mark = "○"; } else{ mark = "×"; } mSetMarkIsMaru = !mSetMarkIsMaru; return mark; }このメンバ関数と、 BOOL 型メンバ変数 mSetMarkIsMaru (初期値は TRUE とするように)
をCMyDlg に追加して、
各 OnButton 関数内で呼び出せば、この関数の戻り値で○と×が交互に返されます。
後は、バグさんの3.にあるように、○と×がついたボタンを押しても変化が無いように
書き換えるだけのはずです。
Re:プログラム
void CMyDlg::OnButton1()
{
GetCheckMark()
}
void CMyDlg::OnButton2()
{
GetCheckMark()
}
const char* CMyDlg::GetCheckMark(){
const char* mark;
if(mSetMarkIsMaru){
mark = "○";
}
else{
mark = "×";
}
mSetMarkIsMaru = !mSetMarkIsMaru;
return mark;
}
としたんですが文字列入力するのはどこでやるとよいのでしょうか?
コンボボックス使っていたときは追加した関数の中でしてたんですが今回はこれをすると
botton1押したら①だけでなく②とかも入力されちゃいますよね。
呼び出し元の関数でするのも判定のときにつらくなりそうなので・・
何か良い方法はありますか?
>バグさん
それは知りませんでした。きちんと勉強しておきますね。
{
GetCheckMark()
}
void CMyDlg::OnButton2()
{
GetCheckMark()
}
const char* CMyDlg::GetCheckMark(){
const char* mark;
if(mSetMarkIsMaru){
mark = "○";
}
else{
mark = "×";
}
mSetMarkIsMaru = !mSetMarkIsMaru;
return mark;
}
としたんですが文字列入力するのはどこでやるとよいのでしょうか?
コンボボックス使っていたときは追加した関数の中でしてたんですが今回はこれをすると
botton1押したら①だけでなく②とかも入力されちゃいますよね。
呼び出し元の関数でするのも判定のときにつらくなりそうなので・・
何か良い方法はありますか?
>バグさん
それは知りませんでした。きちんと勉強しておきますね。
Re:プログラム
ありがとうございました。
ところで判定のとき,Judgeのときです。
のpStatic->GetWindowText(cString);
の所でtypedef識別子にクラスメンバ アクセス演算子(->)を使用しましたって出てエラーが直らないんですが
どうすればいいのでしょうか?
ところで判定のとき,Judgeのときです。
BOOL CMaruBatsuDlg::Judge(INT nNumber) { // Staticのテキストを取り出す CString cString[9]; INT nStatic[/url] = {IDC_STATIC1, IDC_STATIC2, IDC_STATIC3, IDC_STATIC4, IDC_STATIC5, IDC_STATIC6, IDC_STATIC7, IDC_STATIC8, IDC_STATIC9}; for (INT i = 0; i < 9; ++i) { CStatic* pStatic = (CStatic*)GetDlgItem(nStatic); pStatic->GetWindowText(cString); }
のpStatic->GetWindowText(cString);
の所でtypedef識別子にクラスメンバ アクセス演算子(->)を使用しましたって出てエラーが直らないんですが
どうすればいいのでしょうか?