No.5ベストアンサー
- 回答日時:
> 今回やりたいことは初期化だけではなく連続しての処理を行いたいのですがこの場所に書いて良いのでしょうか。
こういうのはイベント駆動のフレームワークとは相性が悪いですよ。
本当に連続して処理を行うなら自前でイベントループを回すかサブスレッドを起動して処理するかしないとユーザイベントを受け取れなくなりますから。
処理を初期化部分と定期的に呼ばれるハンドラ部分とに分割してやる必要がありますね。時計の場合だとタイマーのスタート(SetTimer)はOnInitDialogで、表示更新はOnTimerで記述すれば良いかと思います。
No.4
- 回答日時:
>今回やりたいことは初期化だけではなく連続しての処理を
>行いたいのですがこの場所に書いて良いのでしょうか
つまり、メインループの位置がわからないということでしょうか?
OnIdle()とかでいいのでは??
ダイアログベースの場合はOnIdle()は勝手に呼ばれないみたいなので
WindowProcを実装しておいて、OnIdleを呼べばいいような。
#include "AFXPRIV.H"
LRESULT xxxDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_KICKIDLE) {
return AfxGetApp()->OnIdle(lParam);
}
return CDialog::WindowProc(message, wParam, lParam);
}
試してないので、参考程度に。。。
>つまり、メインループの位置がわからないということでしょうか?
ということですかね。イベント処理以外に一定サイクルでの割り込み処理
が必要でした。
>OnIdle()とかでいいのでは??
初めて知りましたありがとうございます。
詳しく調べて見ます。
No.3
- 回答日時:
内部的にはやってるようですが、
OnInitDialogもメッセージマップは存在しないのですね。
>フォームが表示されたら直ちに実行
このタイミングだとInitInstanceもOnInitDialogもダメかも
しれません。InitInstanceが呼ばれるのは、プログラムの起動時と
複製時。OnInitDialogが呼ばれるのはCreate中の表示直前なので。
#視認できるかはわかりませんが:-p
No.2
- 回答日時:
>たとえばタイマーをスタートさせデジタル時計を1秒毎に連続で表示させる様な事をしたいのですが今一書き込む位置がわかりません。
この目的であれば、ダイアログのOnIniteDialog()あたりが適当でしょう。
titokaniさんありがとうございます。
質問の様な何もないプログラムを実行しイニシャライズ→フォームの表示
が終了しアイドリング状態となりWindows側に制御が移るタイミングって
どこなのでしょうか?
OnIniteDialog()部分の
return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。・・・とあるところがなんか怪しそうですが・・・・
デバックで追いかけて行ったらフォームが表示されたとたんに見失いました。
No.1
- 回答日時:
AppWizardならば、自動生成されたコードに、
ここに何を書いてくださいというような、
日本語のコメントがキチンと付いていると思いますが。。。?
それとも、コメントをつけずに生成したのでしょうか。。。?
日本語のコメントが読め無いとかはないですよね?
>イベントではなくプログラムが起動しフォームが
>表示されたら直ちに実行させる
ダイアログのメッセージマップを使わないなら、
アプリケーション生成時のInitInstanceの中で良いのでは?
aris-wizさんありがとうございす。
一応日本人ですので日本語はとりあえず読めます(^^;)
変数の宣言とかイベントに対するコードの記入はコメントを見ますと
何とかわかるのですが昔ながらの?たとえばキー入力をポーリングで
チェックし何かをさせたい・・なんて事になるとWindows用に生成されたコードがたくさんあり、
どこに入れていいのかなかなか理解出来ません(ゲームでKey入力に対して処理をさせるような)
ところでInitInstanceのところを見ますと// 標準的な初期化処理・・・と
書いてあります。
今回やりたいことは初期化だけではなく連続しての処理を行いたいのですがこの場所に書いて良いのでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
高校生はアルバイトするべきだろうか?賛成だったら「賛」、否定だったら「否」を文頭においてあなたの意見を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
画面を強制的に再描画させる方法
C言語・C++・C#
-
MFCでコンボボックスを選択不可状態にしたい
C言語・C++・C#
-
OnInitDialog()の関数の組み込み方
C言語・C++・C#
-
-
4
MFCでOnPaintのタイミング
C言語・C++・C#
-
5
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
6
ダイアログ表示時にチェックボックスにチェックされている状態にするには?
C言語・C++・C#
-
7
UpdateData( FALSE); による文字列データの表示更新(VC++6.0)
C言語・C++・C#
-
8
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
9
VC++スレッドの正しい終了のさせかた
C言語・C++・C#
-
10
メッセージハンドラ
C言語・C++・C#
-
11
画像の保存方法。
C言語・C++・C#
-
12
起動時に何のダイアログも表示されない
C言語・C++・C#
-
13
MFCダイアログボックスを最前面に表示
C言語・C++・C#
-
14
Visual C++ でクラスを削除する
C言語・C++・C#
-
15
WaitForSingleObjectの使い方について
C言語・C++・C#
-
16
CWnd::EnableWindow()の扱い方
C言語・C++・C#
-
17
CStringの文字列検索&抜き出しについて
C言語・C++・C#
-
18
std::stringからLPCWSTR型への変換
C言語・C++・C#
-
19
unsigned long long 型のフォーマット指定子
C言語・C++・C#
-
20
ダイアログの上のテキストボックスの、初期値を設定する方法が分かりません・・・・
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
InvalidateRectがうまくいかない
-
VBA kernel32 の意味
-
【MFC】イベントの無効化について
-
DoEvents
-
処理をとめるキャンセルボタン...
-
メッセージボックスのボタン名変更
-
VBA、UserFormを前面に出力して...
-
Application.ScreenUpdating=Fa...
-
サスペンド(休止やスタンバイ...
-
「キャンセル」ボタン付きの処...
-
[VC++] AfxBeginThreadで生成し...
-
ACCESS側からEXCELの書式を設定...
-
起動後直に実行するコードはど...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
-
C言語で、メモリを解放しないで...
-
C# シリアル通信でデータ受信...
-
家電製品の電力周波数を変える機械
-
メモリのセグメント違反の解決...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの処理中一旦処理を止めて再...
-
メッセージボックスのボタン名変更
-
VBA kernel32 の意味
-
VBSで応答不要のメッセージボッ...
-
ACCESS側からEXCELの書式を設定...
-
VBA、UserFormを前面に出力して...
-
エクセルVBAでクリップボード内...
-
Excel VBA で処理中断(DoEvents...
-
ASP.NETでのメッセージ画面を出...
-
VBA メッセージボックスを自動...
-
Application.ScreenUpdating=Fa...
-
シャットダウン時のExcel強制終...
-
【C#】 あるイベントから別イ...
-
エクセルが勝手に立ち上がる
-
マルチスレッドを実現したい
-
MFCのワーカースレッドとUIスレ...
-
PostMessageの連続送信
-
vb.net イベントが完全に終了...
-
起動後直に実行するコードはど...
-
DoEvents
おすすめ情報