ボタンをおして使いたい関数に飛ぶ、プログラムの書き方教えてください
関数に飛ぶ部分の書き方が知りたいです
>発言される前に「使用上の注意」を必ずお読み下さい。
これ どうなったのでしょうね?
回答はこんなところですかね
------------------------------------
CXXXXView.h
class CXXXXView : public CRecordView
{
public:
CMARU10View();
DECLARE_DYNCREATE(CMARU10View)
・
・
・
// 生成されたメッセージ マップ関数
protected:
//{{AFX_MSG(CMARU10View)
afx_msg void OnButton1();
・
・
・
]
------------------------------------
CXXXXView.cpp
void CXXXXView::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してくださ
い
((CXXXXApp*)AfxGetApp())->SwitchView( 2 ); ←使いたい関数
}
------------------------------------
クラスウィザード「メッセージマップ・クラス名(ボタンのあるVIEW)」
オブジェクトID「IDC_XXX(ボタンのID)」
メッセージ「BN_CLICKED」をクリック
コードの編集
で編集できますけど
ちょっとまだわかんないです・・
たとえば、OnButtonという関数があり、そのボタンがおされるとその中の関数が働くとします
ね。その記述はどうしたらよろしいのでしょうか?その関数は別の所にあります
>クラスウィザード「メッセージマップ・クラス名(ボタンのあるVIEW)」
>オブジェクトID「IDC_XXX(ボタンのID)」
>メッセージ「BN_CLICKED」をクリック
>コードの編集
>で編集できますけど
これでわからないと言うことなので MFCで作成しているわけではないのでしょうか?
どんなつくりしているか教えてください
>>発言される前に「使用上の注意」を必ずお読み下さい。
いいかげん 読んでくれませんかね!
「使用上の注意」は読んだの?
環境がわからないと答えようがないと思うけど
OnButton という関数は、メッセージハンドラではないのですよね?
wood さんの
>((CXXXXApp*)AfxGetApp())->SwitchView( 2 ); ←使いたい関数
この部分で OnButton 関数を呼び出せばいいのではないでしょうか?
ボタンの部分じゃなくて、下のがいまいちわからないんですよ。どうやって関数をとばしてるの
か
((CXXXXApp*)AfxGetApp())->SwitchView( 2 );
SDIですよ
CXXXXApp に SwitchViewっていうメソッドがあるんでしょ?
普通の呼び出しだと思うけど?
関数は“とばすのではなく“呼び出す”のです。
wood さんや中村さんの言うとおり、きちんと「使用上の注意」を読んでから書き込みましょう。
今どこまで出来ているの?
ボタン押したらどんな動作したいの?
>((CXXXXApp*)AfxGetApp())->SwitchView( 2 );
これ、そのものは、あまり気にしなくてもいいよ
APPWIZARDで生成しただけでは、「SwitchView」こんなの
見つからないはずですから
まだまだです・・
ボタン押したら、関数を呼んでほしいんです
なにが「まだまだです・・」なのか良くわからないので
>OnButtonという関数
その関数と処理させたい(飛ばしたい・呼び出したい)関数、ここに書いてください
void CMUView::OnButton1()
{
}
のカッコの中に↓
void CMUView::DisplayImage( CString strPath )
をいれて、ボタンが押されると、この関数が処理されてほしいんです
void CMUView::OnButton1()
{
CString strPath;
strPath=xxxxxxxxx;
DisplayImage( strPath );
}
これでダメなの?