- 1 名前:デフォルトの名無しさん [2008/12/26(金) 00:43:36 ]
- Microsoft Foundation Classライブラリ専用スレです。
前スレ ■MFC相談室 mfc19d.dll■ pc11.2ch.net/test/read.cgi/tech/1207301867/
- 159 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 11:55:15 ]
- スクリーン座標をクライアント座標に変換した所、正しく変換された物から右下側に座標がずれてしまうのですが
これは、使い方がおかしいのでしょうか?
- 160 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 12:02:21 ]
- エスパーさーん
- 161 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 12:09:41 ]
- ScreenToClientでスクリーン座標をクライアント座標にしたらずれてるって話だろ?
別に意味がわからなくはないとおもうが・・・。 まぁ、俺には解決策はわからんけどね
- 162 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 14:04:57 ]
- ・変換元座標がスクリーン座標でない。
・実はAPIのScreenToClientを使用しており、渡すHWNDが間違っている。 ・"正しく変換された物"のほうがずれている。
- 163 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 15:33:57 ]
- 非クライアント領域が計算に入ってないんだろうな
- 164 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:01:13 ]
- GetCurrentDirectoryより簡単な関数はありますか?
- 165 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:18:29 ]
- >>164
「簡単」の基準は?
- 166 名前:デフォルトの名無しさん [2009/01/13(火) 23:24:58 ]
- MFCを使い ダイアログベースのプログラムを作成しています。
例えばダイアログ上にボタンを配置し 毎フレーム位置を変更させるような プログラムを作成したいと考えています。 毎フレーム処理を行うようなコードはどのように実装すればよいのでしょうか?
- 167 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:28:08 ]
- そもそもフレームってどういう意味で言っているのか分からない
紙芝居でもダイアログ上に表示するのか?
- 168 名前:デフォルトの名無しさん [2009/01/13(火) 23:38:06 ]
- >>167
返答ありがとうございます。 >紙芝居でもダイアログ上に表示するのか? イメージに近いです1フレーム毎に処理を行えればと思っています。
- 169 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:43:46 ]
- フレームの定義が時間単位とかだと、タイマーイベントでも作ってダイアログのDC上に絵を描画とかか?
関係ない話だけど、今Windows7のペイントいじってみた なんとなくリボンの良さ分かった木はするけど、絵心がないから個人であれ作るのは面倒だな
- 170 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 23:52:29 ]
- >>169
Timerを使わず win32でいうところのメッセージループみたいな 所で独自のイベントを受け取って処理を行いたいんだけど いまいちわからん。。。 リボンUIは確かに見た目は良いね
- 171 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 00:26:54 ]
- GDIにはフレームという概念は無いはず。
タイマーかなんかで一定時間毎に処理するしかないね。
- 172 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 01:39:59 ]
- やっぱりフレームがどういうものを想像しているのか分からないな
描画が必要なタイミングの単位と言うならOnDrawとかになるんだろうけど 一定周期じゃないもんな(アクティブになったときとか、リサイズされたときとか色々。。。)
- 173 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 10:09:35 ]
- MFCならOnIdleの出番か?
- 174 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 10:42:44 ]
- ティアリングの無い綺麗なアニメーションしたければWPF使えってんだ
- 175 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 18:16:00 ]
- CRectTrackerを使って画像内にドラッグで大きさ、位置が
変更可能な矩形を描画しようとしてるんですが、 矩形内の色が白になってしまって画像が上書きされた形になります。 枠だけ描画というのはどうやったらできるんでしょうか。 画像はrawで、OpenGLで描画されています。
- 176 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 18:24:56 ]
- >>175
コンストラクタでCRectTracker::hatchInsideを指定するとどうなる? # OpenGLで描画したものってDCの範疇じゃないのかな?
- 177 名前:175 mailto:sage [2009/01/14(水) 18:55:08 ]
- >>176
斜線が入るだけで、白く塗りつぶされたままです。
- 178 名前:デフォルトの名無しさん [2009/01/14(水) 19:52:53 ]
- エディットボックスでキー入力の入力方法を英語から日本語入力に自動的に切り替える方法を教えてください。
- 179 名前:178 [2009/01/14(水) 19:53:28 ]
- ↑winXP+VC2005です。すいません
- 180 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 21:15:39 ]
- MFCにあったかな?
なければスレ違い
- 181 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 22:07:07 ]
- >>175
そもそもなんでOpenGLで描画したところにトラッキングしたいのか判らんが、 MFC側の問題じゃなくてOpenGL側の問題っぽいからOpenGLスレで聞いて味噌。
- 182 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 23:26:05 ]
- 質問させてください。
今MFC VC2005を使いプログラムを組んでいるのですが、あるメソッド内でint型配列array[21]の中身をsetwindowtextでタイトルに表示させたいと思っています。 setwindow(_T(""))で、array[i]をどのように記述すれば表示できるようになるでしょうか。下らないかもしれませんがお願いします。
- 183 名前:デフォルトの名無しさん mailto:sage [2009/01/14(水) 23:28:17 ]
- CString hoge;
hoge.format(_T("%d"), array[i]); wnd.SetWindowText(hoge); こんな感じかな
- 184 名前:182 mailto:sage [2009/01/15(木) 02:24:13 ]
- >>183さん
そういう書き方をするんですね、、無事上手くいきました。ありがとうございました!
- 185 名前:175 mailto:sage [2009/01/15(木) 02:48:28 ]
- >>181
今使ってるプログラムはもともと1年半くらい前の演習の時に先生から頂いたrawビューアで、 研究に使えそうだってことでその時のプログラムを改造しようとしてるんですが、 OpenGLは全く扱ったことがなくて(演習の時も処理部分しか触ってない)、 時間もないんで、OpenGLを勉強するより1から作り直した方が早いような気がしてきたんですが、 raw画像(320×320の輝度値のみのデータ)をMFCを使って表示させるには ビットマップに変換するしかないのでしょうか。
- 186 名前:名無し募集中。。。 mailto:sage [2009/01/15(木) 03:19:54 ]
- 輝度データをDIBに変換すれば良い
BMPはLoadImageでDIBのハンドルを得られるが 自分で変換する場合はBITMAPINFOにサイズなどをセットしてCreateDIBSectionを使って ハンドルと輝度データを入れる領域を得る(ここまでMFCなし
- 187 名前:175 mailto:sage [2009/01/15(木) 11:33:23 ]
- >>186
アドバイスありがとうございます。 それで作ってみたいと思います。
- 188 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 17:33:57 ]
- MFC6.0の参考書見ながらこつこつやってるんだけど別に支障はない?
1999〜2001年に出版されたものなんだが
- 189 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 19:37:56 ]
- int iLength = m_Edit.LineLength(i)+1;
TCHAR *ptBuf = new TCHAR[iLength]; m_Edit.GetLine(i,ptBuf,iLength); ptBuf[iLength]=0; ar.WriteString(str); delete[] ptBuf; 一行一行ファイルの保存させたいのでCEditの内容を取得して保存させるのに 上記の様なソースを書いたところdelete[]の所でエラーをはくのですがなぜでしょうか?
- 190 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 19:47:37 ]
- >>189
ptBuf[iLength]=0; ↓ ptBuf[iLength-1]=0;
- 191 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 19:57:10 ]
- CWnd::GetWindowTextでCStringに纏めて取って、
CString::Tokenizeで分解したほうが手っ取り早くね?
- 192 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 20:45:37 ]
-
int i, nLineCount; CString strText; CStringArray bufArray; nLineCount=m_Edit.GetLineCount(); for (i=0;i < nLineCount;i++) { int len = m_Edit.LineLength(m_Edit.LineIndex(i)); m_Edit.GetLine(i, strText.GetBuffer(len), len); strText.ReleaseBuffer(len); bufArray.Add(strText); } CStdioFile file; if(file.Open(..略..)) { for (i=0;i <bufArray.GetSize();i++) { file.WriteString(bufArray.GetAt(i)); file.WriteString(_T("\r\n")); } file.Close(); } とかでよくね?
- 193 名前:デフォルトの名無しさん mailto:sage [2009/01/16(金) 21:25:28 ]
- CEdit::GetLine
戻り値 実際にコピーされたバイト数 戻り値使わないの?
- 194 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:00:50 ]
- MFCでデバイスコンテキストで使われているフォントの高さを取得する方法ってありますか?
- 195 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 00:05:43 ]
- GetTextExtent
- 196 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 03:07:01 ]
- >>193
ここの使用例をテキトーに書き直しただけだから、 ttp://msdn.microsoft.com/ja-jp/library/s7zy7cwk(VS.80).aspx 細かい事気にすんな。 ハゲるぞ。(もうハゲてるかもしれんけど)
- 197 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 04:18:10 ]
- GetLineの戻り値、、使わないなあ。 使いどころない。
>>193は、>>192でどう戻り値使うのだろうか?
- 198 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 09:07:51 ]
- >>194
GetTextMetrics
- 199 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 17:51:17 ]
- lineText..GetLine(iLine, strText.GetBuffer(iLength));
っていう風に関数を実行するとstrTextにその行が入る時と入らない時があるんですがなぜなんでしょうか?
- 200 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 17:57:30 ]
- ReleaseBuffer してるか?
- 201 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:01:19 ]
- 行ってますし、デバッガでとめて一個一個通すと何故か全部入っていくんです。
- 202 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 18:08:02 ]
- >lineText..GetLine(iLine, strText.GetBuffer(iLength));
こんなコード、有り得ないだろ。
- 203 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 19:07:15 ]
- CEdit::GetLine(int nIndex, LPTSTR lpszBuffer)
だろ?EM_GETLINEのベタ実装なんだよな、これ。 昔から思っていたんだが、わざわざメソッドとして用意しておく必要性あるんだろうか。 普通バッファ長を指定できる方しか使わないと思うのだが。 わざわざこっちでバッファの先頭ワードにバッファ長代入とか暇人過ぎだろ。
- 204 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 21:11:51 ]
- 2つあるうちの一見楽そうに見える方が実は大変ということか
- 205 名前:デフォルトの名無しさん [2009/01/18(日) 15:22:20 ]
- >>199
>>203 が書いているように、引数が2つしかない CEdit::GetLine()を使う 時は、呼び出す前に、第二引数で渡すバッファの先頭に、バッファ長を 書いておく必要があるのに、それをやっていないからだろ? LPTSTR pBuf; pBuf=strText.GetBuffer(iLength); *((LPWORD)pBuf)=iLength; // バッファ長をセット m_wndEditCtrl.GetLine(iLine,pBuf); strText.ReleaseBuffer(iLength); 自分でバッファ先頭にバッファ長をセットするのが面倒なら、引数が3つ あるCEdit::GetLine()を使うことだ。
- 206 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 16:01:41 ]
- 日付や時間を取得したいけどエラーがでてしまうんです・・・
内容は Run-Time Check Failure #3 - The variable 'newtime' is being used without being initialized. afx_msg void CMainWin::OnTime() { char str[80]; CTime Curtime = CTime::GetCurrentTime(); struct tm *newtime; newtime = Curtime.GetLocalTm(newtime); //ここが問題 wsprintf(str,asctime(newtime)); str[strlen(str) - 1] = '\0'; MessageBox(str,"Time and Date"); } msdn.microsoft.com/ja-jp/library/fxy17zta(VS.80).aspx ここ見る限りじゃ間違いないと思うんだけどなあ・・・ 指摘と改善お願いします。。。
- 207 名前:デフォルトの名無しさん [2009/01/18(日) 16:57:35 ]
- >>206
突っ込みどころが大杉。釣りか? C++やMFC以前に、ポインタも理解していないなら、C言語の基礎からやった 方がいいと思う。 MFCのサンプルは間違っているな。 struct tm newtime; Curtime.GetLocalTm(&newtime); でうまくいくだろう。 また、ワイド文字版のwsprintf()を使うなら「char str[80]」ではなく 「wchar_t str[80]」とすべき。MessageBoxもワイド版を使う。 > str[strlen(str) - 1] = '\0'; これもprintf()/wprintf()によって文字列末尾にNUL文字('\0')は付与され ているから意味がないし、ワイド文字なら、strlen()ではなくwcslen()を 使うべき。 str[wcslen(str)-1] = L'\0'; 第一、str[]がNUL文字で終端されていないと、strlen()/wcslen()は 文字列長さを判定できない。
- 208 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:08:05 ]
- >>207
MSのサンプル間違ってるとか悲しいわな これ、一応参考書のサンプルなんですけど捨てたほうがいいでしょうか まあ2001年に出版されたものなんですけどね
- 209 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:14:24 ]
- サンプルは間違っているとは言い切れないよ。
宣言と利用の間に、メモリ確保が隠されているかもしれないw とは言え、2008用のページの方は訂正されているんだからそっちを見ればいい訳で。 ttp://msdn.microsoft.com/ja-jp/library/fxy17zta.aspx
- 210 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:22:43 ]
- CTime Curtime = CTime::GetCurrentTime();
tm newtime; Curtime.GetLocalTm(&newtime); wsprintf(str,asctime(&newtime)); でできました! 参考書って年代で仕様も変わるけど図書館にはこれしかなくて・・・^^; なんか疑いにくいんですよね、参考書って どうもありがとうございました
- 211 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:28:49 ]
- 本に誤字脱字があるのは珍しいことじゃない
- 212 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:33:05 ]
- おかしいと思ったら複数調べるのがいい。
- 213 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:33:41 ]
- >>210
その参考書が何か知らんが、MSDNのサンプルをコピペしただけの悪書なんじゃないか? いみじくも参考書を名乗るのなら、ちゃんと検証されたコードを載せるべきだと思うのだが。
- 214 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:37:35 ]
- >>213
えっと・・・ ハーバート・シルト/フランク・クロケット著 「標準講座 MFC6.0」だそうです 結構分厚いからコピペではないと思います ver間での使用の違いを疑わなかった自分のミスです
- 215 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:40:25 ]
- いやこれ仕様の違いじゃなくてもともと間違ってるよ。
でもその本見る限り、コピペじゃなくて同じソースってことみたいね
- 216 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:44:41 ]
- ってサンプルソースがダウンロードできるから見てみたけど、
struct tm *newtime; newtime = curtime.GetLocalTm(); これなら旧仕様で合法だな。
- 217 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:48:03 ]
- >>216を2008でコンパイルするとGetLocalTm()に引数がないことからエラーがでました
昔はよかった
- 218 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:50:03 ]
- まあそれはMSDNのほうでも、_SECURE_ATLを未定義にすればいいみたいだけどね。
- 219 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:50:40 ]
- >いいみたい
→いいと書いてるみたい
- 220 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 17:56:33 ]
- 昔は引数にNULL(省略化)を渡すことで、オブジェクト内部のstruct tmの
ポインタを返す仕様だったけど、NULLポインタを渡すのを許可しなくなった ってことでは? オブジェクト内部のstruct tmのポインタを取得できると、直接データを 書き換えて隠蔽化の意味がなくなるから。
- 221 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 18:56:56 ]
- 元のサンプルと全然違ってるし
- 222 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 19:33:49 ]
- サンプルコードなんて使い方の雰囲気を感じ取るだけのもんで
コピペするもんじゃねぇ。 自分のプログラムに組み込むときは、引数・戻り値の意味と動作を理解し 自分の頭でコードを書くべき。
- 223 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 20:41:17 ]
- サンプルコードをいじくりながら学ぶもんなんじゃねえの?
いじくる前に1回コピペするだろ
- 224 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 21:26:46 ]
- いじくるのは勝手だけど、自分が間違ったのを本のせいにしない。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 22:59:29 ]
- >>207
wsprintf()ってワイド文字ではなくTCHARだけど。
- 226 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:02:26 ]
- TCHARは_tsprintfみたいな名前だろ?
wprintfはwcharのはず プリプロセッサで切り替わるだけだし
- 227 名前:デフォルトの名無しさん mailto:sage [2009/01/18(日) 23:05:43 ]
- wsprintfはWindowsのAPI
wprintfはprintfのワイド文字版
- 228 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:15:16 ]
- >>210
手元の2004年初版第6刷発行では>>216のコードになってるな >>225-227 wsprintf()は環境によってマルチバイトかUNICODEだよね。 >>206のコードだとマルチバイト環境のコードならばcharは間違えというわけではない。 それと str[strlen(str) - 1] = '\0'; ってのはasctime()が改行文字を付加するからそいつを取っ払うため。 まぁ、あんまりよろしくないコードとは思うけどね。
- 229 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 00:41:37 ]
- wsprintfとwprintfとswprintfは紛らわしすぎる
- 230 名前:デフォルトの名無しさん [2009/01/19(月) 05:48:07 ]
- 処理をCPU使用率30%を上限に制限して実行させるにはどうすればいいんでしょうか?
そんなことは可能なんですか?
- 231 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 08:47:51 ]
- なんでそんなことする必要があるのか疑問。
他のアプリの邪魔をしたくなければ、スレッドの優先順位を低くしとけばいいだけ。
- 232 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 08:53:15 ]
- >>230
25%上限でよければ、簡単だよw
- 233 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 09:23:00 ]
- >>232
Core2Duoですが簡単ですか?
- 234 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 09:25:08 ]
- 惜しいな、Core2Duo単体なら上限は50%だ。
- 235 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 09:31:19 ]
- Core2Duo限定のソフトか!
- 236 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 10:31:14 ]
- いえ、Qのほうで
- 237 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 12:33:52 ]
- MFCと関係あるか?
- 238 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 14:54:00 ]
- 誰ですか。勝手に話を進めないでくださいw
アプリに重い処理を乗せたくて起動者全員CPU30%とか10%づつシェアするプログラムを組み込みたいんです 制限かけないとずっと自分が使ってなくてもずっと100%で熱暴走が心配なのでCPU10%を提供に制限したいんです。 どうすればいいと思いますか?
- 239 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 15:36:17 ]
- MFCにそういうライブラリが存在しなければスレ違い
- 240 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 17:17:46 ]
- >>238
熱暴走が心配ってどんな環境だよ。 「起動者全員」とか「シェアする」とかサーバーアプリなの? どうしても心配ならユーザー数に応じてSleepでもさせたら?
- 241 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:23:57 ]
- CPU使用率を求める処理でCPUを食うから無意味
- 242 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 20:09:19 ]
- >>241
えっ?
- 243 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 20:29:40 ]
- お前ら >>237 も >>239 も見えないフリか。
- 244 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 20:50:46 ]
- 熱暴走については、昔の焼き鳥こさえてたAthlonの時代ならともかく、
今のCPUは温度が上がりすぎると勝手にクロックとか落とすので、特に問題ないな。 CPU利用率については、WindowsServerならプロセスがどれだけフル回転していようと、 一定時間毎に容赦なく他のプロセスに明け渡すから、無難なレスポンスが確保できそうかな、と。
- 245 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 06:57:04 ]
- 優先度でいつでも明け渡せるとしても、気分的に窮屈な感じしませんか?
自分の作ったプログラムはいつも全力で走るんですが、CPU見てると常に20%ぐらいでなんかまわってたりするんですが 、タスクマネージャで確認してるだけなんですが、この%って一定時間内のCPU100%使用率ってことなんですか? そうでないとしたら%制限の方法を教えてください!
- 246 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 07:08:05 ]
- >>240
thx! 今ってCPUというかハードの性能がすごくてほとんどの処理がすぐ終わって待機時間がすごくもったいない気がしたので そういう部分だけの汎用的なCOMとかで自由に独自のソフトに組み込めたらよくないですか? 10%シェアでも100人いればパソコン10台分ですよね。フリーでそういうのあれば教えてください。 Sleepでどうやるかじっくり考えます。 どうもです
- 247 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 07:56:11 ]
- 無駄。つーか、スレ違いだと。
そもそも>234辺りの理屈は判っているのだろうか。
- 248 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 10:08:04 ]
- スレ違いだと何度指摘されても話を続ける奴って何なの?
知的障害者なの?死ぬの?
- 249 名前:デフォルトの名無しさん mailto:sage [2009/01/20(火) 18:56:45 ]
- ム板は初心者にとってスレチが紛らわしいと思うけどこれはわかるだろ、な?
- 250 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 08:26:16 ]
- どこで聞けばいいんでしょうか?
どうやって実現するかわからないのでターゲットのスレもわからないです。
- 251 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 09:10:06 ]
- >>250
>この板はプログラムを作る人のための板です。 >あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
- 252 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 09:38:27 ]
- thx
- 253 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 08:41:42 ]
- MDIで一つのDocに複数のViewというのはなんとか判る。今回、
そのViewが一つ1枚とその他10枚が別のViewになる構成ってどうやるのがいいのだろう。 CMultiDocTemplateを11個AddDocTemplateすることになるのだろうか。 その場合、クラスを派生して10個にしておかないと10枚の区別がつかない気がするのだが。 ってことで、これから移動するからレスは夜になるが、誰かヒント頼む。
- 254 名前:デフォルトの名無しさん [2009/01/22(木) 09:50:02 ]
- Viewクラスだけ異なるDocTemplate作ればよいのではないか?
たしか複数のAddDocTemplateをすると新規作成時にテンプレ選択ダイアログが出るようになるな
- 255 名前:デフォルトの名無しさん mailto:sage [2009/01/22(木) 14:10:59 ]
- ドキュメントテンプレートはアイコン、メニュー、ツールバーみたいなリソース関係で
ドキュメントごとじゃなくてドキュメントタイプごとに違うリソース使えるようにする
- 256 名前:253 mailto:sage [2009/01/23(金) 00:42:41 ]
- 今(帰って)きた。レスTHX。つーか、>253は出掛けとは言え酷いなぁw
結局、一つの必ず必要なViewだけドキュメントテンプレートにして、 他の10枚分は全部そのViewから必要に応じて開くようにしてしまった。 考えてみたら、新規作成ならテンプレート選択ダイアログが開くけど ファイルオープンだとどうせ最初のテンプレートでしか開かないしね。 それとも選択する手段があるのかな? # うーむ、今更真面目にMFCの勉強し直すのも面倒だなぁ……
- 257 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 10:35:20 ]
- 同時に開く1個+10個が、常に同じファイル数でセットなのか、10個は
中身は異なるが同じクラスのオブジェクトなのか、そこらへんで全く 違ってくると思う。 開くファイルとビュー(ウィンドウ)を全てMDIのDoc-View構造に登録して 管理しなければならないかといえば、決してそうではない。 SDIだけど、ペイントブラシのように、開くのは1個の画像ファイルで、 一部を拡大表示するウィンドウを複数同時に表示できるなどというインター フェースだって作れる。 例えばMDIベースでVisual Studio相当のアプリケーションを作成すると して、独立した1個がプロジェクトファイル、残りのN個がプロジェクト を構成するソース/ヘッダファイルだったとして、ソース/ヘッダファイル はプロジェクトの一部としてだけでなく単独でも開ける。 プロジェクトの一部として開いたソース/ヘッダファイルは、プロジェクト に相当するドキュメントクラスで管理することになると思う。ソース/ヘッダ ファイルを単独で開いた場合、インターフェースに統一性を持たせるため、 一時的に無名のプロジェクトを作成し、それに管理させているような形に なるのでは?
- 258 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 11:33:53 ]
- CHtmlViewをMDIで使いたいんですが、
このビューを単独でプロジェクトに追加して開くにはどうすればいいですか? ドキュメントテンプレートでAddにすると、使わないのに.Docも作らなければいけないとおもうんですが。
- 259 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 13:07:32 ]
- >>258
クラスの追加もできない馬鹿は、MFCの参考書でも読んで勉強し直せ
|

|