[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 11:54 / Filesize : 106 KB / Number-of Response : 448
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■MFC相談室 mfc20d.dll■



1 名前:デフォルトの名無しさん [2008/12/26(金) 00:43:36 ]
Microsoft Foundation Classライブラリ専用スレです。

前スレ
■MFC相談室 mfc19d.dll■
pc11.2ch.net/test/read.cgi/tech/1207301867/

24 名前:デフォルトの名無しさん [2008/12/27(土) 20:16:07 ]
MDIを終了するときに、子ウィンドウが終了する前にC〜Appで終了する処理をしたいのですが
ExitInstanceとかやデコンストラクタでは読み込めないっぽいんです。
どの関数を使ったらいいですか?


25 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 21:00:34 ]
>>24
もう少しまともな質問の仕方ができるように、MFCを勉強してこい

26 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 21:29:48 ]
>>24
デストラクタくらいはちゃんと覚えようぜ。 会話にならないから。

27 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 21:35:57 ]
>MDIを終了するときに、子ウィンドウが終了する前にC〜Appで終了する処理をしたい
どんな「処理」をしたいのか、まったく想像できんのだが・・・。

28 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 21:57:16 ]
初心者のくせにやりたいことをぼかすからだろ
具体的にこれがしたいって言えよな

29 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 08:38:34 ]
COLORREF に 明るさのdouble値をかけるにどうすればいいんですか?
どう変化していくのか数値を眺めていたんですが3色同じ割合で変化してないのでどう書けばいいのかわからないです。


30 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 08:46:47 ]
面倒臭がるな、でFA

31 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 08:48:33 ]
UINT nBrightness; // 0〜255
COLORREF rgbRGB(255,0,0);

nBrightness=UINT(dblPercent*255.0/100.0);
  rgb=RGB(GetRValue(rgb)*nBrightness/255, \
      ,GetGValue(rgb)*nBrightness/255, \
      ,GetBValue(rgb)*nBrightness/255);

とか。

32 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 09:37:09 ]
color = RGB(GetRValue(rgb) + (((255.0-(double)GetRValue(rgb))/255.0)*(bufLum/255.0)),
        GetGValue(rgb) + (((255.0-(double)GetGValue(rgb))/255.0)*(bufLum/255.0)),
        GetBValue(rgb) + (((255.0-(double)GetBValue(rgb))/255.0)*(bufLum/255.0)));

まったくうまくいきません
dblPercentはなんですか?



33 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 10:30:52 ]
変に悩むくらいなら、shlwapiのColorAdjustLumaでも使っとけ。

34 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 11:53:56 ]
あーわかったパーセント、double値を100倍したパーセントを各色に掛けてるのかthx

35 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 13:23:10 ]
キーボードの入力でOnKeyDownを入れたんですが、Aを押した時はどう書けばいいんですか?
調べてもVK_Aとしか出てこないんですが、シンボルが無いといわれるんです

36 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 13:47:15 ]
>>35
ただ単に 'A' と書けばいい。VK_Aを定義したいなら、 #define VK_A 'A' もしくは #define VK_A 0x41


37 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 13:47:25 ]
もう馬鹿にかまうな。
こいつに素養なんか、かけらもない。

38 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 14:15:49 ]
俺も最初見たときは迷った口。
昔からそこら辺の説明はまともに書いてないんだよなあ。

39 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:17:50 ]
ありがとうございます。
VK_Aの情報多すぎますよね。なんでなくなったんだろ
トレースで出てきた値入れようか悩んだんですが、あまりにも原始的で・・・Aで良かったんですね。どうもです。
コントロールと同時押しも情報がなさすぎて困ってたんですがすごいのを思いつきました!今日は冴えてます。

BOOL ctrl_A = 0;
void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags){
 if( ctrl_A == 1 ){
  if( (nChar == 'A') || (nChar ==VK_CONTROL) ){
  }
 }
 if( (nChar == 'A') || (nChar ==VK_CONTROL) ){
  ctrl_A = 1;
 }
}

void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags){
 if( (nChar == 'A') || (nChar ==VK_CONTROL) ){
  ctrl_A = 0;
 }
}

40 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:40:39 ]
「GetKeyState」を調べると幸せになれるかも

41 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:47:14 ]
感動しました。1行で書けますねwありがとう^^

42 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 18:06:16 ]
>>39
どーでもいいことだが、ハンガリアン記法を憶えると、あとからソース見直す時にラクになるぞ。
つうか、こっちがそれに慣れてるからそうじゃないコードを見ると読みにくくてかなわん。(笑)

>BOOL ctrl_A = 0;
BOOL は TRUE か FALSE だろ? みたいな、よ。

>if( ctrl_A == 1 ){
は、if ( ctrl_A ){ でいい。あくまで == を書きたいなら、if ( 1 == ctrl_A){ としたほうがいい。
理由はわかるだろ?

って、ここは C の初心者教室かよ・・・・。



43 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 18:10:39 ]
>BOOL は TRUE か FALSE だろ? みたいな、よ。
今更何を……

>は、if ( ctrl_A ){ でいい。あくまで == を書きたいなら、if ( 1 == ctrl_A){ としたほうがいい。
勘弁してくれ。

ここはいつから三田某シンパのロートルが巣食うようになったんだ?

44 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 18:15:27 ]
実にどうでもいい

45 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 18:52:05 ]
BOOLは1と0と-1
TRUEとFALSEだけではない

46 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 18:54:55 ]
C の初心者教室に帰って存分に熱い思いを語れ

47 名前:24 [2008/12/28(日) 20:20:46 ]
えっと、MDI終了時に起動しているファイルパスを全て取得したいんですが


48 名前:名無し募集中。。。 mailto:sage [2008/12/28(日) 20:28:10 ]
ファイルパス情報はDocが持っているんじゃないかな

49 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 21:10:10 ]
メニューの最近使ったファイルリストのところを参考にすればよさそうな気がする

50 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 21:26:02 ]
終了時に保存するか聞いてくるから
終了時に開いてるやつが編集されたか全部チェックしてるだろ

51 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 00:41:49 ]
AfxGetApp()等でアプリケーション派生クラスのポインタを得るか、アプリケーション
派生クラスのメンバ関数内から、

(1) まず、CWinApp::GetFirstDocTemplatePosition()を呼んだ後で、
(2) CWinApp::GetNextDocTemplate()を呼んで、CDocTemplateクラスのポインタを得る。


(3) (2)で取得したCDocTemplateクラスのポインタに対して、まず
  CDocTemplate::GetFirstDocPosition()を呼んだ後、
(4) CDocTemplate::GetNextDocを呼んで、CDocumentのポインタを得る。

同じテンプレートでオープンされているか複数ドキュメントを全て取得
するには、(4)をNULLが返るまで繰り返す。

という流れ。

アプリケーションに複数のドキュメントテンプレートが存在する場合、(2)が
NULLを返すまで、それぞれのテンプレートのポインタに対して(3)〜(4)を繰り
返す。

この方法ならSDI/MDI関係ない。

各ドキュメントのパスは、CDocument::GetPathName()で取得。
ドキュメントが更新されているかどうかは、CDocument::IsModified()で取得。

52 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:18:01 ]
GetAsyncKeyState のMFC版ってありますかね?



53 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 05:41:42 ]
CRectで指定した領域を塗りつぶしではなくカラー補正のようなことをするにはどうすればいいんでしょうか
BitBltでパターンを使う2段階描画じゃなくて、直接変更するにはどうすればいいんでしょうか

54 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 06:30:44 ]
すいません。マージコピーが用意されてました

55 名前:47 [2008/12/30(火) 19:18:07 ]
>51
ありがとうございます!
えっと、仕組みは分かったのですが、終了するときExitInstanceやデストラクタでは
すでに子ウィンドウが閉じていて取得できません。どこに書けば取得できますでしょうか?

56 名前:デフォルトの名無しさん [2008/12/30(火) 23:47:58 ]
MFCはLinuxで使えないから糞ですね。
wxWidgetを使うことにします。

57 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 08:26:19 ]
switchの中でswitchを書いたり、ifのtrueとelseで同じcase値をもったswitchを区別させるにはどうすればいいんですか?
ずっとバグと闘ってたんですが、どうも同じcase値があるのがいけないような気がするんです。この辺どうなんでしょうか

58 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 08:39:59 ]
別の関数にわけたほうがいいと思うが……

59 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 09:07:19 ]
ですよね・・・そうします。

60 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 10:36:30 ]
誤爆?
ここMFCスレですよ

61 名前:51 mailto:sage [2008/12/31(水) 13:24:41 ]
WM_CLOSE メッセージハンドラ = CMainFrame::OnClose() あたりで
よいのでわ?

62 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 15:00:45 ]
でわ?



63 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 20:54:58 ]
誰か教えてください
VS2008 SP1 で CFormView から派生の SDI の新規プロジェクトを作り、
何も変えずにビルドしたらいきなり CMainFrame::OnCreate が見つからないというエラーに遭遇しました
それで、MainFrame.h に CMainFrame::OnCreate の定義を追加したところ、ビルドはできたのですが、
その CMainFrame::OnCreate が呼ばれていないらしくて、ツールバーやドッキングウィンドウ等がまったく表示されません
SDI の CFormView でツールバーやドッキングウィンドウはどうやって表示すればいいですか?
むしろ VS2008 SP1 を使うのやめといたほうがいいですかね???

64 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 21:14:44 ]
>>63
1.アプリケーションの種類でシングルドキュメントを選択
2.生成されたクラスで基本クラスにCFormViewを選択
3.完了ボタンを押す
4.印刷サポートが無いとの警告で「はい」を押す
5.F5でビルド-デバッグ実行

以上の操作で問題なく実行された。

65 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 21:21:02 ]
>>64
レスありがとうございます
んー、使っているのが VS2008 Pro の評価版でこいつにSP1あてたせいでしょうかね?
製品版のVS2008 SP1だとこの問題が出ないのでしょうかね
とりあえず、Createのイベントを追加してOnCreateのコードをごっそり移動させたら動きました

66 名前:デフォルトの名無しさん mailto:sage [2009/01/01(木) 10:18:59 ]
>CFormView から派生の SDI の新規プロジェクト

これWizard内だけで完結させたのかな?
もしそうなら、そんなエラー出ることないと思うけどなあ。

67 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 05:11:13 ]
>>63の件ですが、どうもMFCアプリケーションウィザードの5枚目で
初期ステータスバーのチェックを外すと発生するみたいです
(初期ステータスバーのチェックを外す以外は何も変更しなくても起きました)

68 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 01:08:51 ]
>>67
検証してみたが、製品版のVS2008SP1(SE)でも発生した。
【対処法】は以下のとおり。

・MainFrm.cppのメッセージマップに、
    ON_WM_CREATE()
 の一行を追加する。
・MainFrm.h のメッセージハンドラ関数を宣言しているあたりに、
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
 の一行を追加する。

これでビルドは可能になる。うーん、AppWizerd のバグかな。

69 名前:デフォルトの名無しさん [2009/01/03(土) 02:43:18 ]
どなたか教えてください。


VC2005のMFC、SDIを使いラジオボタンを配置しているのですが、選択ができず、チェックがいれられないでいます。

ラジオボタン自体はradiobutton.Create()で引数指定して貼り付けています。
ググってCwnd;;CheckRadioButton等を見つけたのですが、手をつけられず困っています。
もしよろしければどなたか助言の方お願いします。

70 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 03:02:14 ]
ID を連続させる必要がある。
あと、「グループ」プロパティのチェックは
一連のラジオボタンの先頭のみにチェックを入れるんだったはず。

71 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 03:14:08 ]
radiobutton.SetCheck( int nCheck);
詳細は CButton::SetCheck のヘルプ読めばわかる。

72 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 03:35:38 ]
動的に作成したラジオボタンにプロパティなんぞない。
IDを連続させて、ON_CONTROL_RANGE() マクロで処理するんだよ。



73 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 11:19:24 ]
ダイアログで右クリックでポップアップメニューを表示するようにしたのですが、
ON_UPDATE_COMMAND_UIを実装してもコールされず、メニューの有効無効やチェックなどが更新されません
ダイアログでON_UPDATE_COMMAND_UIの関数でメニューを更新する方法はありますか?


74 名前:69 mailto:sage [2009/01/03(土) 12:58:11 ]
>>70-72

アドバイスありがとうございます。

IDを連続など調べて頑張ってみます。

75 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 13:50:02 ]
>>68
Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\MFC\Application\templates\1041にある
frame.h内の177行目と、frame.cppの内の47行目の
[!if DOCKING_TOOLBAR || TOOLBAR_STYLE_REBAR || RIBBON_TOOLBAR || STATUS_BAR]

[!if DOCKING_TOOLBAR || TOOLBAR_STYLE_REBAR || MENUBAR_TOOLBAR || RIBBON_TOOLBAR || STATUS_BAR]
にしておくと、次からうまくいくようになる。

ついでに、frame.cppの内の935行目の
return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);

return [!output MAIN_FRAME_BASE_CLASS]::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
にしておくとドキュメントのないSDIのときに、ドッキングウインドウ関係のバグがなくなる。


76 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 14:44:38 ]
複数の画像を表示させてドラッグで移動させるプログラムを書いていたのですが
複数選択をさせる時等はどうしたらいいんでしょう?


77 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 14:48:18 ]
エクスプローラでも参考にしろ

78 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 15:15:53 ]
出来るだけWindowsに近い直感的なUIを提供するのは基本だしな

79 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 16:32:54 ]
Docが持ってる変数のみで何らかの処理を行いたい場合って
Doc側に関数を実装すればいいんですかね?

80 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:10:39 ]
OK

81 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 17:16:43 ]
>>73
俺は、WM_KICKIDLEが届いたら、
ツールバーにWM_IDLEUPDATECMDUIを送るようにした。

82 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 19:55:47 ]
質問失礼します。

LoadImage関数を使いビットマップをマイピクチャから読み込もうとしているのですが、例外が出てしまい上手くいきません。
マイピクチャにあるビットマップを読み込もうとしており、フルパスで指定してみたいと思ったのですがフルパス指定の方法がいまいちわかりません。

どなたかアドバイスお願いします。



83 名前:名無し募集中。。。 mailto:sage [2009/01/03(土) 19:59:15 ]
あけおめことよろ>all

>>82
どんな例外? ファイルが無くても例外は出ないんじゃないかと。
フルパス指定ができない? \を\\にしていないとかじゃない?

84 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 20:28:20 ]
>>82
LoadImageはイメージリソースをロードする関数だろ。
フォルダにあるBMPを読むには、CreateFileなり、fopenなり、CImage::Load なりを使わなきゃ。

85 名前:名無し募集中。。。 mailto:sage [2009/01/03(土) 20:49:00 ]
> LoadImageはイメージリソースをロードする関数だろ。
そうでもない
msdn.microsoft.com/ja-jp/library/cc364835.aspx
例えばこんな感じ(fnがフルパスのファイル名)
m_hBmp = (HBITMAP)LoadImage( NULL, fn, IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR|LR_DEFAULTSIZE|LR_LOADFROMFILE|LR_VGACOLOR )) ;


86 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 21:11:00 ]
ほお、第2引数でパス名を指定できるんだ。ありがと。勉強になったよ。

87 名前:デフォルトの名無しさん mailto:sage [2009/01/03(土) 23:07:54 ]
>>81
ありがとうございます
できないかと思っていましたが、おかげさまで実装できました

88 名前:82 mailto:sage [2009/01/04(日) 19:22:05 ]
>>83-85

エスケープシーケンスも間違いでしたが、ちょこちょこ手直ししていたらなんとかなりました。
本当に助かりました。ありがとうございます!

89 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 09:26:20 ]
何故この流れでいきなり「エスケープシーケンス」が?

90 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 11:04:46 ]
newして作ったクラスを切り取りや削除した場合ってdeleteってやったほうがいいんですかね?


91 名前:名無し募集中。。。 mailto:sage [2009/01/05(月) 11:34:29 ]
切り取りってなんぞ?
特に理由がない限りnewしたものはdeleteと相場が決まっている

92 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 12:04:04 ]
MFCの中には、使用者にnewで作らせておいて、
delete thisで自殺するクラスもあるけどね。



93 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 12:51:52 ]
>>91
クラス一つ一つに画像がついていて
画像を切り取る時にCRect構造体を用いてるんですよ。
で、このCRect構造体はnewで作っていて切り取りの情報を削除したらDeleteするべきなのかな。とおもいまして

94 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:28:58 ]
>>93
すまん、何を言っているのか理解できないからソースを出してくれ。

95 名前:名無し募集中。。。 mailto:sage [2009/01/05(月) 13:31:51 ]
>>93
newで作ったらdeleteしないといけない
でもnew-deleteを使わなくても良い別の方法があるような気がする(ローカル変数を使うとか

96 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:51:12 ]
>>94
理解できないなら理解しなければいいんじゃね?

ようするに、画像の範囲を切り取る時にCRectでサイズと範囲を指定してるっていう話だろ?
newで作ったならDeleteするのはお約束。
戻り値ある関数でなら戻り値作らなきゃいけないのと一緒。


97 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:55:33 ]
>削除したらDeleteする
漏れにはここが理解できん。

98 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:56:34 ]
MFCに触る以前にC++をまったく理解してないって様子がアリアリだな。

99 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 13:57:24 ]
>>97
範囲を切り取ったよ!
でも、この範囲の情報をいらなくなったからユーザが削除したよ!
そうしたら、プログラム的にdeleteするべき?ってきいてるんだろ。
deleteと削除を区別して考えてるというか、ユーザ側とプログラムで別って事を自覚してるから正しい。


100 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:01:22 ]
>>98
顔真っ赤だけど大丈夫?

C++からMFC来るとクラス削除しなくっても勝手に処理してくれたりで戸惑うのは当たり前だと思うのは俺だけか

101 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:06:32 ]
>>100
顔真っ赤なのは、鏡に映ってる自分のことかぃ?(w

自分のコードで明示的にnewして作ったものを、MFCが内部で勝手に削除
するMFCの標準クラスって、具体的にどのクラスのことなのか1つでいい
から挙げてみてよ。


102 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:07:06 ]
説明が下手なだけだな。



103 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:10:49 ]
MFCにもCreateとかReleaseとかいうメンバ関数があんなにいっぱいあるというのにw

104 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:16:55 ]
>>102
いわゆる、真性のコミュニケーション能力不足ってやつですね。

なんか理系全体のレベルが下がるとともに、年々新人プログラマの質も
下がっているような気がするのは、気のせいか?

>>103
メンバ関数のCreateやReleaseは、麻生読みするとnew/deleteになると
でも言うのかぃ?

予約語以外の関数名なんてコンパイラにとっちゃ、関数を個別に識別する
ための単なる記号でしかないのは、C++どころかCやアセンブラ、BASICでも
変わらん。C++から来たとか騙るな。

105 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:20:17 ]
>>104
お前は何の話をしてるんだw

106 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:23:15 ]
自分の世界に浸っているのでしょう。

つまりなにか? このスレは説明もろくにできない質問者と、
自分の世界に浸って周りを見ようともしない回答者と、
一部の傍観者によって構成されているのか?
# まぁそんなもんか。

107 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:24:51 ]
>>101
CFrameWnd

108 名前:名無し募集中。。。 mailto:sage [2009/01/05(月) 14:35:34 ]
CFrameWndというかCMultiDocTemplateあたり?

説明が下手な人は自分の考えを言葉に表現できないという事だと思うけど
コーディングってプログラム言語でプログラムしたい内容を表現するという事だから
(上司の、スレ住人の、CPUの、OSの、言語の)理解できる的確な表現をする事は重要な事だぜ

109 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 14:36:41 ]
惜しい、そこは「言語」ではなく「コンパイラ」とすべきかと。

110 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 16:11:58 ]
>>101はCFrameWndやCDocTemplateを知らなかったのか?

111 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 16:22:20 ]
なぁ、>>101は図星だったからこんなに必死なん?

112 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 16:31:16 ]
new/deleteや、クラスの生成/消滅でがたがた言ってるヴァカは、ただの屑。
それだけは真実。



113 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:07:53 ]
MFCと関係ない質問はスルーが基本

114 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:23:26 ]
親ウィンドウのクライアントエリアにある子ウィンドウがクリックされた時に
親ウィンドウでも処理をしたいんですが、どうしたらいいんでしょう?

フォーカスを無理やり親に渡してしまうと子ウィンドウ側での処理ができなくなってしまいますし。。。

と、APIの方に誤爆ってしまいましたがどなたかお知恵をお貸しくださいな

115 名前:名無し募集中。。。 mailto:sage [2009/01/05(月) 17:42:02 ]
親ウィンドウってCMDIFrameWnd?子ウィンドウってCMDIChildWnd?
フォーカスを渡さないといけない処理ってどんな処理?

>>109
インタプリタもあるじゃない?と思ったけどMFCならコンパイラ限定か(チッ

116 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 17:53:59 ]
>>115
子ウィンドウの移動をさせたいんですが、親ウィンドウはViewクラスで子ウィンドウはCEditになってます。


117 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 18:59:10 ]
何でフォーカスが関係してくるのか理解不能

118 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 19:05:22 ]
とどのつまり親(Viewとか)のPreTranslateMessageで解決する

119 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 19:31:59 ]
>>117
キー入力がそっちに行っちゃってCtrl+Vとかも使えなくなったのでフォーカスかなぁと。



120 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 21:21:22 ]
MFCのソース見てないけど
EditViewでツールバーやメニュー触ったあともフォーカスはeditに残ってるから
フォーカス戻す処理が入ってる気がする
仮にそうだったらEditViewじゃない普通のviewの場合はviewへフォーカスが戻るだろうね

121 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 21:39:14 ]
リストコントロールで追加したアイテムが常に画面に見えるようにしたいのですが
これはどこが問題あるんでしょうか?スクロールバーは常に一番下になるんですが、画面が変わりません

m_List.InsertItem(m_List.GetItemCount(), mes);
SCROLLINFO si;
m_List.GetScrollInfo(SB_VERT, &si, SIF_ALL);
si.nPos = si.nMax;
m_List.SetScrollInfo(SB_VERT, &si);
m_List.RedrawWindow();

122 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 21:50:52 ]
SetscrollInfo()ではなく、EnsureVisible()を使うのではないだろうか。



123 名前:デフォルトの名無しさん mailto:sage [2009/01/05(月) 22:04:49 ]
表示されるようになりました。1行で書けてしまいました。ありがとうです!

124 名前:デフォルトの名無しさん mailto:sage [2009/01/06(火) 21:28:48 ]
自前のウィンドウに影(ウィンドウの右と下が黒くなるやつ)を付ける方法を
教えて下され。

CWndクラスの中で下のように書くとタイトルバーもない四角いウィンドウがでるのですが、
これに影を付けたいのです。

CreateEx(
WS_EX_TOOLWINDOW,
lpszClassName,
NULL,
WS_POPUP | WS_VSCROLL,
0, 0, 100, 100,
NULL, NULL, NULL);







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<106KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef