- 1 名前:デフォルトの名無しさん [2007/08/01(水) 06:23:28 ]
- Microsoft Foundation Classライブラリ専用スレです。
- 2 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 12:02:21 ]
- 前スレくらい貼ってくれてもバチは当たらないと思う >>1
■MFC相談室 mfc17d.dll■ pc11.2ch.net/test/read.cgi/tech/1164073111/l50
- 3 名前:前スレ986 [2007/08/02(木) 21:54:39 ]
- 前スレ>987 遅レスだがサンクス
- 4 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 21:12:33 ]
- GUIの設計が大変すぎるんだが
例えばVCLでいうStringGridみたいなもの作りたいとき MFCだけでやろうとするとListBoxとかListViewとかをベースに しこしこつくっていくわけなんすかね
- 5 名前:デフォルトの名無しさん mailto:sage [2007/08/10(金) 21:44:32 ]
- だからMFCは基本的にWin32のラッパなんだと何度言ったら(ry
StringGridって割と便利みたいだし、誰かMFCで実装した奴いるんじゃね? いなけりゃ、自前で実装して公開すれば皆に喜ばれるよ。
- 6 名前:デフォルトの名無しさん [2007/08/11(土) 09:45:34 ]
- ダイアログの中にマウス関連のイベントやグラフィック表示を扱う
独自のコントロールを置きたいのですが、 ・CWndの派生クラス(カスタムコントロール)として作成 ・CStaticの派生クラスとして作成 この両者で作り勝手などに違いはありますか? どちらが妥当な方法でしょうか?
- 7 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 03:00:57 ]
- >>4
よく分からんけど ttp://www.codeproject.com/miscctrl/gridctrl.asp ttp://support.microsoft.com/kb/196833/ja ttp://forums.belution.com/ja/vc/000/098/43s.shtml こんなん使ったらアカンのか?
- 8 名前:デフォルトの名無しさん [2007/08/14(火) 06:33:44 ]
- CListView(report)とCDocumentの質問なんですが、
CDocumentに、オブジェクトの配列obj[10]を作って、それを配列の引数順にリストに表示させているのですが、 リストでソートしたときに、リストの表示とCDocumentのリンクのさせかたが分かりません。 つまり、リストのどの行に、オブジェクト配列obj[10]の何番目が入っているのか、どうやってリンクさせればいいんでしょうか?
- 9 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 06:55:17 ]
- >>8
CListCtrl.SetItemDataでインデックス・ポインタ等を関連付けておく。 UI上でのインデックスは、GetItemData用と割り切って考えるといい。
- 10 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 07:21:23 ]
- >>9
レス有難うございます。 やってみたのですが、SetItemDateは、 LVITEM 構造体の lParam メンバの値を設定するもののようなのですが、 で、ソートするときに、このlparamの値を、itemの値と同じ通し番号にしているので(他から引っ張ってきたソート用 のコードで、なんでこうしているのかわからないのですが・・・)、 初めにセットしたlParamの値がソートすることで消えてしまいます。 ソートのコードがおかしいのでしょうか? どうすればよいのでしょう。
- 11 名前:デフォルトの名無しさん [2007/08/14(火) 07:36:31 ]
- >>9
CompareFuncの中もobjを使って比較すればよいのですね。 わかりました。 ありがとうございました。
- 12 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 08:11:07 ]
- >>10
ちゃんと頭を使ってドキュメントを読めば、そんな引っ張ってきたロジックに頼らずに 自分でソートくらい書けるようになりますよ。 尤も、SetItemDateなんてTypoやっているようじゃお郷が知れますがね。
- 13 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 09:10:37 ]
- お郷が知れます(w
- 14 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 09:34:54 ]
- 日曜大工ならず、夏休みプログラミングなもんで・・・
スレ汚し勘弁
- 15 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 23:24:41 ]
- >>10
lParamの値からFindItemを使ってアイテムのIndexを取得してソートに利用 すれば良いでしょう。そうすれば、後からソートをし直してもIndexは 変わってもlParamの値は変わらないので、配列に関連付けて使う事が可能です。 この場合lParamはアイテム挿入時に一度セットしたら後から変えないで下さい。
- 16 名前:デフォルトの名無しさん [2007/08/16(木) 20:44:02 ]
-
テキストエディタとかにルーラー(目盛り)ついてますが あれと同等のことをやりたいです。下にスクロールしても常に表示するみたいな CScrollViewと CDC::IntersectClipRectつかってもうまく行きそうにない・・・。 CViewとIntersectClipRectでスクロールは自前でやるしかないのでしょうか? # CSplitterWndでルーラー部と本体部の2つのViewってのもありでしょうか・・・
- 17 名前:デフォルトの名無しさん mailto:sage [2007/08/16(木) 21:57:04 ]
- >>7
試してみます thx
- 18 名前:デフォルトの名無しさん [2007/08/17(金) 00:39:30 ]
- >>7
その程度のものなら自前で作ってもたかがしれてる ドキュメント読んで使い方を覚えるほうが面倒だよ
- 19 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 01:00:02 ]
- すいません。質問です。
ダイアログのクラスの名前を間違えたので、 ダイアログのクラスを一旦削除して、同じ名前のダイアログのクラスを再度作成すると以下のエラーがでます error C2374: 'classCDialogXXXX' : 再定義されています。2 回以上初期化されています。 'classCDialogXXXX' の宣言を確認してください。 error C2084: 関数 'CRuntimeClass *CDialogXXXX::GetRuntimeClass(void) const' は既に本体を持っています。 'GetRuntimeClass' の前の定義を確認してください ・・・ grepしてもclassCDialogXXXXは一箇所しか見つかりません・・・ 同じ名前のクラスを再度作るにはどうすればいいですか?
- 20 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 01:13:13 ]
- >>19
単に、消し忘れた場所があるだけのような気もするが…… リビルドとかいう基本的な話じゃないよな?
- 21 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 11:28:49 ]
- MFCのソフト1つで、次の場合はダイアログとSDIのどちらが適切ですか?
メニューバーはありで、ツールバーは使いません。 ドキュメントを1つ扱います。 ビューでは、8割がボタンなどで、2割が独自の描画をします。 ビューの一部だけを独自描画の時に、どちらを選ぶのが適切か教えて下さい。
- 22 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 17:32:08 ]
- >>21
画面の一部のみ独自で描画したいというだけなら DialogでもSDIでもどっちでも構わない。 メニューありでボタンが一杯という所を見る限り 自分ならSDIでViewの種類をCFormViewにする。
- 23 名前:デフォルトの名無しさん mailto:sage [2007/08/17(金) 22:57:42 ]
- 漏れなら可能な限りダイアログだ。
- 24 名前:デフォルトの名無しさん [2007/08/17(金) 23:34:25 ]
- ダイアログの何が便利なのかさっぱりわからん
大体、CViewから派生させ、すべて自前で描画したほうが 客の理不尽な要求に応じれる。
- 25 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 00:49:36 ]
- 配置がリソースエディタで弄れる
- 26 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 04:41:41 ]
- CFormViewでもいじれるやん
- 27 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 10:29:11 ]
- >>24 の条件でCFormViewって反則じゃね?
- 28 名前:デフォルトの名無しさん mailto:sage [2007/08/18(土) 10:52:49 ]
- >>24
>ダイアログの何が便利なのかさっぱりわからん ビューとドキュメントをわざわざ分離するまでもない場合、コード量が減る。
- 29 名前:デフォルトの名無しさん [2007/08/18(土) 22:57:02 ]
- >>28
その程度のプログラムを作成する必要があるのかしらん?
- 30 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 01:28:23 ]
- 必要がある、と答えられたらそれまでだな。
プログラムの規模とその必要性に関連は無いし。 MFCで小規模アプリ組むの禁止〜! ってな決まりもないしね。
- 31 名前:デフォルトの名無しさん [2007/08/19(日) 02:36:15 ]
- っえ?
MFCは大規模アプリケーションには向きませんよ
- 32 名前:デフォルトの名無しさん [2007/08/19(日) 02:50:20 ]
- >>24
あれだろ? MSの仕様から逸脱した仕様を希望する馬鹿な客だろ? そういうの刎ねちゃって問題無い場合がほとんどだぜ そいつの好感度上げてもなんもいいことねーし やったからって次の仕事がくるかどうかも全然関係無い場合が多い 俺はタブフォーカスやショートカットの類は全部高額な金額ふっかけて刎ねてる やりたきゃ自分のところでやれと 正直、やるだけ無駄、全く意味無し
- 33 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 05:50:13 ]
- ソフト会社入社3年目の初心者です。
MFCは今後は.NETに取って代わられるというような話を聞きました。 実際どうなんでしょ?
- 34 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 06:30:35 ]
- >>33
.NETってなーに?
- 35 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 06:38:50 ]
- .NET Frameworkのことじゃね?
でも.NET FrameworkってC++で使えるの?
- 36 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 11:43:23 ]
- >>33
まあ、単純で簡単な.NETに移っていくのはしょうがないんじゃね。 VSの機能も、明らかにC++よりC#に力入れてるし。 MFCがなくなることはないだろうけど、使う機会はゆっくり減っていくかと。
- 37 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 12:25:21 ]
- 組み込みプログラムとそのツールの作成の仕事が多いから
MFC+C++の形を保ってくれないと困る ソース流用できねーじゃん 基本理念(オブジェクト指向)が変わらないのに 新しい言語なんて無駄に作るんじゃねぇといいたくなる
- 38 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 13:50:40 ]
- C#やVB.NETは厳密にはコンポーネント指向
- 39 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 14:10:15 ]
- >>35
C++/CLI >>37 >組み込みプログラムとそのツール GUIとファイル処理、通信部でも作っとけば、 ちょっとした組み合わせと改造で事足りるんじゃないか? その程度だったら、2ちゃん回ってる時間を少し割けば、速効で作れるだろ VC、VBだろうが、OOPがどうとか目くじら立てるほどのもんかね? 組み込みでアーキテクチャやOSやらが変わったり、 実績のないボード動かしたりするほどの手間でもないだろ
- 40 名前:デフォルトの名無しさん [2007/08/19(日) 20:01:19 ]
- .netでのアプリを出荷したことないから何とも言えないが
客先から見たら、.NETであることによるメリットってなにもないよね? しかも、.netは遅いなんてことも浸透してるから・・・
- 41 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:32:37 ]
- 今までいろんなプログラム書いてきたが
MFCほどわからんもんはない
- 42 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 00:47:01 ]
- >>40
なんだろうなあれ? なんであんな糞動作するんだろか? スクリプトで動作してんのかな? Vistaといい動作の糞なアプリが多くなったな
- 43 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 06:16:33 ]
- >>42
糞動作の意味がわからん 中間言語で動いてるんだから初回起動は遅いのがあたりまえだろ もっさりしているが 異常動作してるわけじゃない さらにVistaをアプリと分類する頭も逝かれてるな
- 44 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 09:28:57 ]
- アンマネージドなのは好きになれないが、GUI周りの設計は嫌いじゃない。
- 45 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 09:31:23 ]
- アンマネージドじゃなくてマネージドだった
- 46 名前:デフォルトの名無しさん mailto:晒しage [2007/08/20(月) 11:31:13 ]
- >>42
>>42 >>42 >>42 >>42 >>42 >>42
- 47 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 11:38:51 ]
- >>40
ヒント 1年目マでも使える 開発期間 ASP.NET
- 48 名前:デフォルトの名無しさん [2007/08/20(月) 17:14:01 ]
- CWinApp* pApp = AfxGetApp();
if (pApp != NULL) return pApp->DoMessageBox(lpszText, nType, nIDHelp); else return pApp->CWinApp::DoMessageBox(lpszText, nType, nIDHelp);
- 49 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 22:29:14 ]
- >>43
やっぱ、もっさりしてるんじゃんw これが糞動作でなくてなんなんだと聞きたい 俺等は.Netをサポートしてバージョンをわざわざアップしてやるのに 動作はもっさりすんのか? お前等なんて一生もっさりしてればいいんだ
- 50 名前:デフォルトの名無しさん [2007/08/20(月) 22:36:34 ]
- CDC::SaveDCとCDC::RestoreDCって、
CDC::SelectObjectの戻り値を最後に戻す方法に比べて、 なにかデメリットってありますか? こっちのほうがずっと簡潔に書けると思うのだけど。
- 51 名前:デフォルトの名無しさん mailto:sage [2007/08/20(月) 23:15:09 ]
- 一切合財保存するだろうから、必要なものだけ戻すよりは重いと思う。
でもまあ今時のPCならデメリットと言えるほどのものではないだろう。
- 52 名前:デフォルトの名無しさん mailto:sage [2007/08/21(火) 20:45:43 ]
- 一ヶ所でやる事しか考えないなら
どっちでもいい
- 53 名前:デフォルトの名無しさん [2007/08/22(水) 12:37:48 ]
- >>51
やっぱりSaveDCとRestoreDCのほうが便利ですよね。 なんでこの方法って広く浸透していないんだろう。 卑怯な方法みたいに書かれているところもあったし。 >>52 これはどういうことでしょうか? SaveDCはスタック的に何回でもコールできるみたいですけど。
- 54 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 20:40:42 ]
- CDocumentでファイル開く処理を行った後、
CViewのOnDrawで再描画行いたいんですけど CView::GetDocumentのような GetViewみたいなの無いですか? OnDrawするような再描画コマンドでもいいです。
- 55 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 21:18:28 ]
- >>54
Viewの更新は、基本的にCDocument::UpdateAllViewsで通知する GetFirstViewPosition/GetNextViewを使って、 関連付けられたViewの取得もできなくはないけど。
- 56 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:47:13 ]
-
CMyView* pView = (CMyView*)AfxGetMainWnd()->GetActiveView(); pView->InvalidateRect(NULL, FALSE);
- 57 名前:デフォルトの名無しさん mailto:sage [2007/08/29(水) 23:49:32 ]
- ドッキングウィンドウ難しい・・・orz
誰か詳しいページ知ってる人いませんか? コードGruruしかない?
- 58 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 14:55:47 ]
- MFCでドッキングは茨の道すぎるので
C#かBCBやりなさい
- 59 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:16:51 ]
- VC++2005にCWebBrowser2が無いのですが、
ダイアログに貼り付けたWeb Browserコントロールで 下記のようにNavigate2したいのですが、どうすればできるでしょうか? CWebBrowser2* wb = (CWebBrowser2 *)GetDlgItem(IDC_EXPLORER1); wb->Navigate2(url,NULL,NULL,NULL,NULL・・・);
- 60 名前:デフォルトの名無しさん mailto:sage [2007/08/30(木) 23:34:59 ]
- >>59ですが、webbrowser2.hとwebbrowser2.cppを自分のプロジェクトへ追加することで解決しそうです
- 61 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 09:07:23 ]
- >58
MFCはドッキングツールバーがあるから ドッキングウインドウは簡単だけど?
- 62 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 14:57:46 ]
- >>61
なら教えてやれよ。
- 63 名前:デフォルトの名無しさん mailto:sage [2007/08/31(金) 17:12:58 ]
- >>57
www.codeproject.com/docking/sizecbar.asp
- 64 名前:デフォルトの名無しさん [2007/08/31(金) 23:11:46 ]
- ドッキングも使えないとは・・・
- 65 名前:デフォルトの名無しさん [2007/09/01(土) 11:35:46 ]
- メモリマップドファイルについてですが
hMap = CreateFileMapping( hFile, 0, PAGE_READONLY, 0, 0, NULL); // MAP名なし if( hMap <= 0 ) { return false; } pPointer = (char*)MapViewOfFile( hMap, FILE_MAP_READ, 0, 0, 0); // 全サイズ ↑のようにとするとhFileの内容が数1G超とかの場合、無謀になるような気がしますが MapViewOfFileEx等で数ページ分を部分的に割り当てていくしかないでしょうか? 1Gぐらいのファイルを試してみるとpPointerがNULLでした。
- 66 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 11:40:58 ]
- ここMFCスレですよ
- 67 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 12:14:26 ]
- CControlBarから派生する独自ドッキングバー作る時はかなり苦労したもんだ( ´∀`)
CDockBarとかCDockContextとかMSDNドキュメントにも載ってないしソース読むしかないもんな でも.NETだと最初からリサイズ可能ドッキングバーがあるんだよなー・・・なぜMFCも拡張せん!ヽ(`Д´)ノ
- 68 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 14:53:09 ]
- だってMFCだもん
- 69 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 17:48:35 ]
- MFCって今後は先細り?
.NETマンセー時代は来るんですか?
- 70 名前:デフォルトの名無しさん mailto:sage [2007/09/01(土) 23:55:43 ]
- VS2008でVista向けMFCが出るみたい
- 71 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 00:18:12 ]
- MFC嫌いなんで廃れてくんねーかな
- 72 名前:デフォルトの名無しさん [2007/09/02(日) 00:23:31 ]
- なぜ?
.NETに比べたら100倍はいいと思うが?
- 73 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 00:28:05 ]
- >>71嫌いなんで氏んでくんねーかな
- 74 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 11:58:33 ]
- 例外でポインタを投げてくるのだけはどうにかしてほしい
- 75 名前:デフォルトの名無しさん [2007/09/02(日) 14:27:02 ]
- MFCに文句つける奴って単に使えないからだけだでょ?
現在、WINでGUIを作成するなら最強だと思う。 MFC無い時代はWINアプリを書くのはしんどかった。 最近C#なんてあるが、所詮インタプリタみたいなもんだからおもちゃw
- 76 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 15:24:09 ]
- お前は小学生か
- 77 名前:デフォルトの名無しさん mailto:sage [2007/09/02(日) 15:43:12 ]
- .NET Frameworkに文句つける奴って単に使えないからだけだでょ?
現在、WINでGUIを作成するなら最強だと思う。 .NET無い時代はWINアプリを書くのはしんどかった。 昔MFCなんてものがあったが、所詮遺産みたいなもんだからガラクタw
- 78 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 00:22:51 ]
- MFCなんて時代遅れっしょ
- 79 名前:デフォルトの名無しさん [2007/09/03(月) 00:48:28 ]
- 次期VSでのMFCはかなりイイ
ダウンしてみ。 .NETなんざ使う気しなくなるぞ
- 80 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:45:52 ]
- 具体的に説明せよ
- 81 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 03:31:47 ]
- MFCってなにがどうなってんのかさっぱりわかんね('A`)
- 82 名前:デフォルトの名無しさん [2007/09/03(月) 11:39:24 ]
- ダイアログ上に数十のラジオボタンを配置したいのですが、
後のメンテナンス性を考慮して、ダイアログエディタではなく プログラム内の初期化処理にて生成したいのですが、 どういう関数を使えばいいのですか? よろしくお願いします。
- 83 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 12:42:25 ]
- >>82
CButton::Create
- 84 名前:82 mailto:sage [2007/09/03(月) 13:39:19 ]
- >>83
ありがとうございます。
- 85 名前:デフォルトの名無しさん [2007/09/03(月) 20:50:30 ]
- MFCって関数ポインタテーブルを使いたい「だけ」のためにC++使ってるんだろ?
C with class でしかないじゃん、C++と言うより
- 86 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:58:27 ]
- >>85
"C with class"であることの何が悪いのか知らんけど、クラス継承もあるし、オペレータオーバロードもある。 新しいMFCならテンプレートも使っているね。
- 87 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:46:56 ]
- ダイアログ上にタブコントロールを配置してます。
ダイアログの表面色を塗りつぶしてるんですけど、 タブコントロールのタブが並んでいる部分の横の余った空間や、 タブコントロールの周囲の微小な背景がグレーのままです。 ここを塗るにはどうしたらいいんでしょうか。 塗るでもいいし、背景を透過にできればいいんですけど。
- 88 名前:デフォルトの名無しさん [2007/09/03(月) 23:53:19 ]
- rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200704/07040003.txt
場所は↑この方が説明してるのと同じです。
- 89 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 21:26:42 ]
- CHtmlViewでURLのドロップを受け取れるようにするにはどうすればいいの?
SetRegisterAsDropTarget(TRUE)をしてもダメだった
- 90 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 23:03:19 ]
- 中味はIEだし、特に何もしなくてもできるだろ
- 91 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 23:12:42 ]
- ちょっと興味あったんで試したけどデフォルトじゃ無理みたい。
WM_DROPFILESのイベントハンドラ追加のみで出来ました。 ショートカットだけじゃなく、htmlファイルやtxtファイルも表示可。
- 92 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 23:36:09 ]
- ウイザードでCHtmlViewにして、あとは何もいじらない状態でできたよ
- 93 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 00:33:26 ]
- >>90,92
通常のCHtmlViewではドロップできませんでした MFCのバージョンが関係あるかもしれないでしょうか? 自分はVisual Studio 2005 Standard Edition SP1を使ってます(WinXP&IE6) >>91 OnCreateでDragAcceptFiles()してWM_DROPFILESを追加したら、 ローカルのファイルはドロップできるのですが IEからのURLのドラッグ&ドロップはできませんでした・・・ IEからのURLのドロップをしたいのです
- 94 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 09:49:06 ]
- CDC::DrawDragRect()の説明には、座標は「論理座標」と書かれてるのに、
指定した位置にちゃんと描かれず、ネットで使用例を漁ってみたところ、 dc.LPtoDP(&rect); dc.DrawDragRect(rect, Last_draw_size, NULL, CSize(0, 0)); という記述がありました。 これに倣ってLPtoDP()してみたらちゃんと描かれたんですけど、 LPtoDP()するということはデバイス座標ですよね? MSDNの「論理座標」というのはどういう意図なんでしょうか? CDC::Rectangle()のほうにも論理座標と書かれていて、 こっちはLPtoDP()は必要無いんですけど。
- 95 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 14:55:19 ]
- >>94
MSDNの説明が間違っているな、これ。英語版でも駄目だな。 VS2005のCDC::DrawDragRectのコードだと、 矩形描画の範囲を指定するのにSelectClipRgnを使っているが、 この関数はデバイス単位での指定を仮定しているにも関わらず、 単位変換無しでそのまま渡している。
- 96 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 23:49:14 ]
- mfc(VC++ 2005)で開発をしているのですが、
ステータスバーをスレッド中から参照しようとすると、 Assertion Failedで怒られてしまいます。 ダイアログに変数で CStatusBar m_statubar を追加して OnInitDialog でCreate、ペインの初期化を行い ダイアログのコンストラクタで外部変数で定義した CStatusBar *m_sb に m_sb = &m_statusBar でアドレスを渡してスレッドで参照しているのですが どこがいけないのでしょうか?
- 97 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 23:55:33 ]
- >>95
解析情報ありがとうございます。 やっぱりCDC::DrawDragRect()ってデバイス単位で渡すのですよね。 昔からある関数なのにドキュメント修正すらされてないのか…。
- 98 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 23:59:24 ]
- たまたま指摘が無かったんじゃね?
ちゃんとMSに言えば多分直してくれるよ。
- 99 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:11:21 ]
- >>96
メインスレッド以外からコントロールを操作してはいけないからと思われ。
- 100 名前:デフォルトの名無しさん mailto:sage [2007/09/06(木) 00:13:46 ]
- >>99
msdn2.microsoft.com/ja-jp/library/h14y172e(VS.80).aspx
|

|