[表示 : 全て 最新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/

2 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 01:09:30 ]
逃げ

3 名前:デフォルトの名無しさん [2008/12/26(金) 05:21:39 ]
乙!!!

ウィンドウに張り付けたコントロールをスクロールさせてるんですが、
ウィンドウ内のどこへでも行って他の描画を上書きしてしまいます。
このコントロールをウィンドウ領域を制限して移動させるにはどうすればいいんでしょうか?
コントロールの一部が見えている状態もあり得るので領域の制限がいいです。

CRgn rgn;
rgn.CleageRgn(表示領域);
CPaintDC dc(this);
dc.SelectObject(&rgn);

こうじゃないかと思ったんですが、
コントロールのポジション設定の前に書いても
ウィンドウのOnPaintの最初にも書いたのですが、だめでした。お願いします!

4 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 08:41:35 ]
コミュニケーション能力不足って、本来こういう時に使うといいのかな?


5 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 09:10:40 ]
>>3
何がやりたいのかさっぱりわかんない

6 名前:デフォルトの名無しさん [2008/12/26(金) 10:40:19 ]
ボタンコントロールをスクロールバーで位置をスクロールさせて使っている時に
ウィンドウ内でボタンコントロールを表示させたくない領域か、表示される領域を分けて作りたいんです。

7 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 12:03:02 ]
ウィンドウの中に子ウィンドウを作成して、子ウィンドウの中にボタンを配置すればいい。
で、子ウィンドウそのものをスクロールさせる。
ボタンは子ウィンドウの中に存在するから、親ウィンドウの領域を侵すことはない。

8 名前:7 mailto:sage [2008/12/26(金) 12:13:54 ]
>で、子ウィンドウそのものをスクロールさせる。
子ウィンドウの中でボタンをスクロールさせる の間違い。

9 名前:デフォルトの名無しさん [2008/12/26(金) 23:01:00 ]
なるほど、スタティックコントロールなどを張り付けてその中に置けばいいんですね。
きづかなかった・・・・・
お知恵を頂きありがとう!


10 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 00:31:41 ]
>スタティックコントロールなどを張り付けて
ちゃんと>>7を読んだ?
スタティックコントロールの上にボタンを置いても、親から見ればどちらも子供だからボタンを動かすと親の領域を侵すぞ。
親の中に子ウィンドウを作って、さらにその中にボタンを置くんだよ。つまり、親から見ればボタンは孫。

「子ウィンドウの中にボタンを配置」とわざわざ書いたのは、そういうことなんだがな。



11 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 00:33:34 ]
すごいな
俺は>>6の文章で何を言ってるのか意味がわかんねーよ

12 名前:デフォルトの名無しさん [2008/12/27(土) 03:12:14 ]
いえ、CStaticがCWnd派生になっているので、
CStaticの上ではなくて派生CStaticの中でボタンをCreateです。
わかってます大丈夫です。ありがとうございます。
まだコンパイルまで行きませんが、はみ出したらCWnd派生を置いてやります。どうもです。

13 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 08:35:47 ]
ウィンドウのZオーダーとか親子関係とか、根本的なことを理解していなさ
そう。

たぶん次は、『スクロールさせるボタン以外、貼り付けたスタテイック
コントロールに重なっているダイアログ内のコントロールが上書きされ
たり、欠けてしまう』などと質問してくるに違いない。

14 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 09:02:32 ]
すげえ理解力だな、その何言ってるのかわからない質問を予想するとは。

15 名前:デフォルトの名無しさん [2008/12/27(土) 09:26:30 ]
すごいです。なんでわかったんですか
スタティックコントロールをWS_VSCROLLで張り付けたんですが、スクロールバー操作が全くできません。
SS_NOTIFYを付けたんですがだめです。クリックDownは届いてるんです。
スタティックコントロールではなくリストコントロールを代わりに張り付けたら、リストコントロールは全部操作できるんです。
どういうことですか?

16 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 10:52:06 ]
もうわからないのでスクロールバーは孫ではなく子にしました
お世話になりました。

17 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 11:04:00 ]
>スクロールバーは孫ではなく子にしました
・・・・・・孫にしてどーする。^^;

18 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 11:51:13 ]
ソフトバンク社長を馬鹿にするな。

19 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 11:53:57 ]
次の質問は、スタティックを親にしてCreateしたボタンのクリックイベ
ント通知がダイアログに送られてこないかな?

20 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 12:21:55 ]
俺が正義だ!



21 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 13:18:25 ]
>ボタンのクリックイベント通知がダイアログに送られてこないかな?
そういうコードを子供に書くんだよ。孫から親には通知されないが、子から親には通知されるだろ?
孫から子、子から親に通知すれば、ちゃんと親元に届くじゃないか。(笑)

22 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 16:36:43 ]
>>21
そういうメッセージの流れを承知していれば、

> もうわからないのでスクロールバーは孫ではなく子にしました

なんて話も出てこないのでは?

23 名前:デフォルトの名無しさん mailto:sage [2008/12/27(土) 19:18:27 ]
孫を意識しなきゃいけない設計って、結構問題あると思うぞ

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 ]
説明が下手なだけだな。






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

前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