■ VisualC++(MFC限定)相談室 MFC10.dll■
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGスレタイ壊れているけど前スレ
■ VisualC++(MFC限定)相談室 MFC9.dll■
http://pc2.2ch.net/test/read.cgi/tech/1062098350/
関連リンクは >>2-10 の辺り。
0002デフォルトの名無しさん
NGNG■ VisualC++(MFC限定)相談室 MFC8.dll■ (スレタイ壊れているけど前スレ)
http://pc2.2ch.net/test/read.cgi/tech/1056584836/
■ VisualC++(MFC限定)相談室 MFC7.dll■
http://pc2.2ch.net/test/read.cgi/tech/1047949606/l50
■ VisualC++(MFC限定)相談室 MFC6.dll■
http://pc2.2ch.net/test/read.cgi/tech/1039607377/
■ VisualC++(MFC限定)相談室 5■
http://pc3.2ch.net/tech/kako/1028/10285/1028553308.html
■ VisualC++(MFC限定)相談室 4■
http://pc3.2ch.net/tech/kako/1021/10216/1021620974.html
■ VisualC++(MFC限定)相談室 3■
http://pc.2ch.net/tech/kako/1014/10140/1014057520.html
■ VisualC++(MFC限定)相談室 2■
http://pc.2ch.net/tech/kako/1008/10080/1008031675.html
■ VisualC++(MFC限定)相談室 ■
http://pc.2ch.net/tech/kako/989/989902845.html
0003デフォルトの名無しさん
NGNG↑
これ消し忘れた。スマソ
0004デフォルトの名無しさん
NGNG乙
0005デフォルトの名無しさん
NGNGCRichEditCtrlでキー操作による変更をEN_CHANGEで処理し、
SetSelectionCharFormat()で文字色など書式属性を変更している。
削除するだけなら問題ないが、日本語入力で文字列を追加すると
書式属性の変更が画面上に反映されない。
別のコントロールにフォーカスが移った頃になってやっと表れる。
EN_IMECHANGEを試してみたけど、ENM_IMECHANGEをマスクしても来なかった。
(どこかのサイトにRichEdit1.0でないと来ないとか書いてあった)
以上よろしくです。
0006デフォルトの名無しさん
NGNG変更後に
m_RichEdit.InvalidateRect(NULL);
としてみたらどう?
0007デフォルトの名無しさん
NGNGそれやってるんだ。あとInvalidate()も。
すでに正常に表示されている属性はそのままで、
追加した文字列だけが、1つ前の文字の属性になってしまう。
例…「あ」が赤で「えお」は青、新規追加の「いう」は緑にしたい
「あえお」 → 「あいうえお」
こうすると「あいう」までが赤で「えお」が青になる。
でも削除、たとえば「え」を消すと「あ」赤、「いう」緑、「お」青に変わる。
EN_CHANGEじゃなくて、WM_IME_〜を捕まえないといけないのかな。
0008デフォルトの名無しさん
NGNGこれらの動作を禁止するにはどうすればいいでしょうか?
0009デフォルトの名無しさん
NGNGOnOK()
{
//CDialog::OnOK(); こいつわEndDialogしやがる
return;
}
( ´∀`) <OnCancelモナー
0010デフォルトの名無しさん
NGNGしっかり出来ました(^o^)/
0011デフォルトの名無しさん
NGNGこことか見るとその手のマメ知識が身に付くよ
ttp://www.athomejp.com/goldfish/mfc/
0012デフォルトの名無しさん
NGNGしかもクラス別に書いてあって見やすい^-^
今度MFCで困ったとき覗いてみます(^-^;)
0013デフォルトの名無しさん
NGNGコピペすると文字も入力できてしまいます。
数値だけしか入らないようにしたいのですがいい方法はありますか?
0014デフォルトの名無しさん
NGNGテキストボックスって「エディット・ボックス」のことか?
コントロールにメンバ変数をintやUINTで割り当ててやれば範囲指定も含めて
勝手にやってくれるが。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG普通にキー入力だとちゃんと無視してくれるんですが、
それだとコピペで入力できてしまうんです
>>15
ActiveXコントロール作ってるのでなるべくActiveXコンテナにはなりたくないと思ってます。
0017デフォルトの名無しさん
NGNGメニューがプルダウンしたときに
クリップボード中にテキスト形式のデータがあるかを判定して
あれば有効に、なければ淡色表示にしたくて
UPDATE_COMMAND_UIを使って実現できたんですが
これを使うと便利な事に同じIDのツールバーも同じ処理をしてくれるんですが
メニューの場合は、プルダウンしたときだけに呼ばれるのですが、
ツールバーの場合は、マウスが1ドット動いただけで呼ばれてしまいます
メニューの有効無効の判定する処理が重くなるとかなりの負荷になります
UPDATE_COMMAND_UI以外にプルダウンメニューだけに
適応できる方法ってないでしょうか?
メニューのIDとツールバーのID変えれば済むのですが、
管理上わかりにくくなるので困ってます
0018デフォルトの名無しさん
NGNG001917
NGNGOnUpdate〜(CCmdUI* pCmdUI)
のpCmdUI->m_pMenu が NULL なら
メニューのプルダウン時じゃないので
無視してツールバーが更新してしまう事を防げました
これで重い判定でもプルダウンした時のみに適用できます
0020デフォルトの名無しさん
NGNGCListView で SortItemsの比較関数の実装を行っています。
static int CALLBACK CExtListView::CompareFunc
(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);
このコールバック関数なんですが、CListViewの中で
GetListCtrl().SortItems(CompareFunc, (DWORD) pSortStruct);
という形でCompareFuncを呼び出すと、第1、第2引数が
いずれもNULLの形で呼び出されます。
これは何が問題なのでしょうか?
両者には有効なLVITEMへのポインタが渡されると思っていたのですが。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGども。
調べてみたら LVITEM の lParam を設定しないと駄目みたいですね。
設定してデバッグで確認したらCompareFuncに渡されるのは
ポインタではなく、
0 1 / 2 3 / 4 5
といった数字の組み合わせみたいです。おそらくアイテムの
番号なんでしょう。
もう少し研究してみます。
0023デフォルトの名無しさん
NGNGで、普通はそのlParamにアイテムのポインタなんかを入れておいて、
CItem pItem = new CItem;
pItem->text = _T("ABC");
LVITEM.lParam = (LPARAM)pItem;
・・・
・・・
CompareFunc(・・・){
CItem pItem1 = (CItem*)lParam1;
CItem pItem2 = (CItem*)lParam2;
// pItem1->textとpItem2->textを比較してソート
}
ってやり方が常道かと。
0024デフォルトの名無しさん
NGNGどもども。どうにか実装できました。
ソートアルゴリズムにはあまり明るくないんですが、
同じソート関数で昇順と降順を交互に変更できる
んですかね。
最初、昇順のときと降順のときでソート関数の符号が
+-逆になるように比較関数を書いてみたんですが、
どうも動作がおかしいので、符号を逆にすることを
やめたら、正しくソートされるようになりました。
(以前は2回ソートするとソート順が変わるようになっていた)
0025デフォルトの名無しさん
NGNG引き続きリストビューのソートの研究をやっておりますた。
↓こちらのスレを参考にしてやってました。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TVdrag.html
>>24の段階では、まだ正しく動作していなくて、
Swap関数を作って、要素を入れ替えながらソートしたら
うまくいかないことが分かったんですが、ソート関数自体は
大筋で正しいアルゴリズムだったようです。
それで↑のURLを見ると、LVITEMのソート直前にlParam に
0から順番に数値を割り振っていますが、やはりこれを
やらないとうまくソートされない。初期の挿入時に1回やれば
OKなのではなく、ソートのたびに再度割り振り直さないと
いけないようです。これはすべて同じ数字の割り振りでは
駄目で、MaxItemCount から0まで減算しながら割り振る方法
でも正しくソートされないようです。(逆順にもならなかった)
それで以上のような結果を踏まえると、>>23さんのおっしゃる
ように lParam にポインタをいれておくことはできないのではな
いかと思うのですが、どうでしょう? 実際にポインタを入れて
使っている人いますか?
0026デフォルトの名無しさん
NGNGint nResult = ::lstrcmpi(pItem1->GetName(), pItem2->GetName());
return nReault;
逆順ソートしたい場合は
int nResult = ::lstrcmpi(pItem2->GetName(), pItem1->GetName());
return nReault;
0027デフォルトの名無しさん
NGNG>うまくいかないことが分かったんですが、ソート関数自体は
>大筋で正しいアルゴリズムだったようです。
ソート関数ではなくコンペア関数ね。
0028デフォルトの名無しさん
NGNGわかりますた。
CompareFunctionで lParam1 と lParam2 を
アイテムの順番と一致することを前提に関数を
書いてますた。
たしかにできるかも知れないですね。
引き続き研究してみます。
0029デフォルトの名無しさん
NGNGLPARAMにポインタを使ってできますた!
この場合は >>25 のように番号の再割り振りは不要らしい。
動作原理は今ひとつ不明ですが・・・。
0030デフォルトの名無しさん
NGNGSortItems呼び出し中はアイテムの位置が変わらないんだよ。
比較関数が呼ばれるたびに位置が入れ替わるクイックソートとは違うわけだ。
だから、インデックスで指定するGetItemやGetItemTextは
常に同じアイテムからデータを取得することができる。
そのためにlParamにインデックスを振って識別できるようにするわけだ。
これが、lParamがリストビュー以外で構成されているデータを指すポインタであっても同じ。
要はlParamが一意のアイテムに対応付けられていて比較に必要なデータを取り出すことができればいいわけだ。
(ソートが必要なければ対応付けは当然要らない)
インデックスをlParamに振るのは楽だけど、アイテムが多くなるとパフォーマンスの問題が出る。
でも、もっと大量になるとオーナーデータになって、SortItemsが使えなくなるんだけどな。
0031デフォルトの名無しさん
NGNGまともなリストビューの実装はほんと難しいですね。
エクスプローラを目指しているんですが、CImageListの
画像もデフォルトだと黒っぽくて汚いし、一筋縄では
いかない感じです。
0032デフォルトの名無しさん
NGNGリストビューで質問なんですが、複数のアイテムをドラッグするには
どうしたらいいのでしょう?
1つのアイテムのドラッグはできたし、選択された複数のアイテムの
取得もできたみたいなのですが、CImageList のドラッグする関数が
static なので複数のドラッグイメージを同時にMoveできない
みたいなんです。
CListCtrl::CreateDragImage() を繰り返して各アイテムのイメージを
作って、それを結合して1つの大きなイメージを作ることはできるん
ですかね。
0033デフォルトの名無しさん
NGNGふーむ。よくよく見てみると、エクスプローラの場合、
複数同時ドラッグは独自イメージを作っている感じ・・。
自分でイメージ作るのか・・・マンドクセ。
0034デフォルトの名無しさん
NGNGCImageList ってCDCあたりからイメージを作成することって
できないんでしょうか? アイコンとビットマップからの作成は
あるんですが、メモリ上で作る方法が知りたい。
CListCtrl::CreateDragImage があるので、不可能ではないので
しょうけど、どうやってんだろ?
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG右側のコントロールを切り替える奴はどうやって実装してるんですか?
0037デフォルトの名無しさん
NGNGShowWindow()で切り替えしてる。
それが正しいかどうかは知らね。
0039デフォルトの名無しさん
NGNGリソースにビットマップ画像の列を入れて
ボタンに画像を入れていますが、
あれって全部同じサイズじゃないとダメなのでしょうか?
Googleツールバーだと最初のロゴだけ
違うサイズなのでできるはずなのですが・・・。
あそこだけ、違うウィンドウなのかな?
0040デフォルトの名無しさん
NGNG書かなきゃならなくなりそうなんだけど、CFileFindかなんかを使って
サブディレクトリにぶち当たるごとに再帰する以外になんかいい方法あるかな。
自分で書くと、テストが面倒で・・・
0041デフォルトの名無しさん
NGNG再帰する以外を考える方が面倒だと思うけど?
0042デフォルトの名無しさん
NGNGどっかに拡張APIでも転がってないかと・・・
#なさそうだなぁ。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGそのままで、リサイズor移動予定の枠だけマウスに追尾した表示
になりますよね?これを実際に枠の移動だけじゃなくダイアログの
実体そのものを追尾させる方法ってありますか?
0045デフォルトの名無しさん
NGNG移動の方はまったくもって意味不明
0046デフォルトの名無しさん
NGNG移動時、リサイズ時にダイアログを移動、リサイズする。
WM_MOUSEMOVEやWM_SIZEのタイミングでダイアログをMoveWindowなりSetWondowPosなりしてみては。
動作は確認してないけど。
0047デフォルトの名無しさん
NGNGそれって画面のプロパティの
”ドラッグ中にウィンドウの内容を表示する”
って設定の問題なんじゃないの?
0048デフォルトの名無しさん
NGNGたぶんWin9xの話だろ
0050デフォルトの名無しさん
NGNGどうやればいいでしょうか?
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG::PlaySound
0053デフォルトの名無しさん
NGNGPlaySoundはどのようにして使えばいいのでしょうか?
検索してもいまいち使い方がわからず・・・(ノД`)
今持っているwavファイルの音を効果音として出したいのですが・・・
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG友達の家のPCを使わせてもらってるんですが、ヘルプが見れないんですよ・・・
0056デフォルトの名無しさん
NGNGネットで検索の一つでもしれこのやろう!
0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG検索はもちろんしましたが、詳しく書いてあるサイトがないようなので
0059デフォルトの名無しさん
NGNGなんでそんなすぐばれる嘘をつくんだ。
0060デフォルトの名無しさん
NGNGいやホントに検索はしていますが、playsoundと一行書くだけでwavファイルは
鳴らせます・・・とかで、いまいち意味がわかんないんですよ
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG::sndPlaySound
0063デフォルトの名無しさん
NGNGPlaySound( "music.wav", NULL, SND_FILENAME );
Library: Use Winmm.lib
0064デフォルトの名無しさん
NGNG今回タブコントロールを初めて使うんですが、コントロールの配置方法が良くわかりません。
おそらくshowwindowで変化させることまではわかったんですが
リソースエディタで良いコントロールの配置方法はないでしょうか?
0065デフォルトの名無しさん
NGNGMFCのプロパティシート/ページのソースでも見てみれば?
0066デフォルトの名無しさん
NGNGやり方がHogeDlg *dlg = new HogeDlg()でインスタンスを作成して、PostNcDestroyでdelete thisってやってるのばっかなんだが
これってHogeDlg dlg;で作成して、いらなくなったらdlg.DestroyWindow()呼んでやるってのじゃだめなの?(わざわざnewするのに意味あるの?)
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNGどうすればいいのですか?
0070デフォルトの名無しさん
NGNG>>11
0071デフォルトの名無しさん
NGNG仕様を考え直す
0072デフォルトの名無しさん
NGNGの関係がよくわかりません。
これについて、詳しく書いてある書籍やWebページがあったら教えてください。
入門書(林晴比古のVisualC++6.0入門)をみてもよくわかりませんでした。
0073デフォルトの名無しさん
NGNGソース見てみるのもいいよ。俺はそうやって理解した。
0074デフォルトの名無しさん
NGNGView
↑
App → MainFrame
↓
Document
こんな感じだな。
・Viewクラスから
GetDocument()でDocumentクラスへのポインタが取れる。
GetParentFrame() MainFrameへのポインタが取れる。
AfxGetApp() でAppへのポインタが取れる。
これで各クラスの連携が取れるんじゃないか?
あとは、これをそれぞれどう使うかはユーザー次第。
基本的には
メニュー・ツールバー・ステータスバー・メインウインドウの位置 → MainFrame
クライアント領域の描画 → View
こんな感じになってる。
0075デフォルトの名無しさん
NGNGMFCに入ってないですか?CListViewとCTreeViewで動作をひとつずつ
作っていかないといけないのでしょうか。
0076デフォルトの名無しさん
NGNGCFileDialog
0078デフォルトの名無しさん
NGNGいちいちデバイスコンテキストに線とか引いていくしか無いのでしょうか?
一あわせとか超手間なんですが、。
なんか楽にやるクラスとかツールって無いでしょうか。
今回は一応線引きで出来たんですけど苦労したし、変更とかあったら
調整が大変そうなので、よろしければおしえてください。
0079デフォルトの名無しさん
NGNG若者よ、それが汝の務めなのです。定型的で間違えやすい作業を見つけたら自動化しなさい。
それが数学的な意味で原始的な内容なら探せばきっと見つかるはず、
あなたの直面する業務に固有な内容ならあなたの身の回りになければ世界中のどこにもありません。
0080デフォルトの名無しさん
NGNGCOMでExcel呼び出すとか? 「楽にやる」って要求を必ずしも満たすとは限らないと思うが・・・。
0081デフォルトの名無しさん
NGNGお、それ盲点だったかも
CFileDialogをうまく右側に組み込めればありだなぁ
ちょっと研究してみよう
0082デフォルトの名無しさん
NGNGありがとう、転職でそんなに若くないけどね。(笑
イラレのデータをデバイスコンテキスト用に出力してくれるコードでも書いてみます。
一ヶ月でよくここまでやったなあ、俺
0083デフォルトの名無しさん
NGNGCFileクラスのReadおよびWrite関数にてメモリの内容をファイルに出力、
またはその逆を行っています。(Read、Writeするサイズは50メガ程度
です。)
プログラムを動作させるマシンによって、abnormal program termination
が発生するのですが、これは何が原因なのでしょうか?
現状50Mを超える場合は複数回に分けて読み込み、書き込みを行って回避
していますが、原因がわからず困っています。
また、エラーメッセージを出力させるようにしたところ、
「システム リソースが不足しているため、要求されたサービスを完了で
きません。」とのこと。
環境
OS :windows200SP4
開発環境:VC++6.0 Enterprise
0084デフォルトの名無しさん
NGNGCFileくらすというより、API(ReadFile/WriteFile)の問題になると思うが、俺もこの
問題に直面したことがあって、いろいろやった。で、一番手っ取り早いのはI/Oを
小分けに(10MB以下に)することですな。
50Mかそれ以上を 1I/Oでリソースエラー出さずにRead/Writeすることもできたけど、
小分けにするほうが確実。
0085デフォルトの名無しさん
NGNGアイテムがダブルクリックされたときのメッセージは、HDN_ITEMDBLCLICKで
よろしいのでしょうか。
実際にプログラムを起動してアイテムをダブルクリックしても対応する関数が
呼び出されません。
0086デフォルトの名無しさん
NGNGhttp://www.microsoft.com/msj/0798/controlspy.aspx
0087デフォルトの名無しさん
NGNGファイルマッピングを使うと楽で確実ですよ。
0088デフォルトの名無しさん
NGNGこんな便利なものがあったのですね。
どうもありがとうございました。
0089デフォルトの名無しさん
NGNGてくるメッセージの取得ってどうやればいいのかな?
0090デフォルトの名無しさん
NGNGあなたみたいにわからん人のためにリソースエディタがあるんですが。
0091デフォルトの名無しさん
NGNG知ったかは黙っとけよ
0092デフォルトの名無しさん
NGNGハンドラ手でかけ
0093デフォルトの名無しさん
NGNGテキストボックスってエディットコントロールのこと?
質問の意味がわからん・・・。
0094デフォルトの名無しさん
NGNGCreateWindowで"EDIT"を指定して作ったウインドウのことだな?
SetWindowLongのGWL_WNDPROCあたり調べてみそ
>>93
消費者向けの用語と、開発者向けの用語が違ってるのはよくあることだよ
0095デフォルトの名無しさん
NGNGゃないかと。
親ウィンドウ側で何か処理したい場合も、親のBEGIN_MESSAGE_MAP〜END_MESSAGE_MAP
に直書きもアリかも知れないし、親のWindowProc()なりで直接処理するとか、派生クラスから
ユーザメッセージ飛ばすとか、いろいろ考えられる。
0097デフォルトの名無しさん
NGNG乙
0098デフォルトの名無しさん
NGNG1. ドキュメントオブジェクトを生成しますが、データをディスクから読み取ろうとはしません。
2. CMainFrameクラスのメインフレームオブジェクトを生成。
さらに、メインフレームウィンドウを生成しますが、まだ表示しません。
このメインフレームウィンドウは、IDR_MAINFRAMEメニュー、ツールバー、ステータスバーを含みます。
3. ビューオブジェクトを生成しますが、まだ表示しません。
4. ドキュメントオブジェクト、メインフレームオブジェクト、ビューオブジェクトの間に接続を確立します。
これらのオブジェクトの接続を、
AddDocTemplate呼び出しによって確立されるクラスの接続と混同しないでください。
という記述があったのですが4が何を言おうとしているのかわかりません。
接続を確立するっていうのは何をしていて、どう混同してはいけないのでしょうか?
0099デフォルトの名無しさん
NGNG別にCreateWindowでもControl IDは設定できるやん。
0100デフォルトの名無しさん
NGNGクラスの接続と、オブジェクトの接続の違いってことだよ。
0101デフォルトの名無しさん
NGNGを作りたいのですが方法が分かりません。
これもフックを使うのでしょうか?
0102101
NGNG0104デフォルトの名無しさん
NGNGウインドウの右上にある×を押したときの動作をカスタマイズしたいのですが、
(アプリケーションを終了させるのではなく非表示にしたい)
キーワードがわからず検索すらままなりません。
キーワードを教えてください。よろしくお願いします。
0105デフォルトの名無しさん
NGNGWM_SYSCOMMAND
0106デフォルトの名無しさん
NGNGWM_CLOSEメッセージを検索してみそ
MFCならそれをCMainFrameでハンドリングして・・・あとはお好きなように
0108デフォルトの名無しさん
NGNGプログラムを実行したときにそのファイルをC:\\などにコピーしたいんですけど
そのファイルのパスの取り方を教えてください。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG0111デフォルトの名無しさん
NGNG自分はプロジェクトのリソースファイルの中にコピーしたいファイルを登録しているんですが、
そのリソースファイルに登録したファイルのパスをどうやって取得したらいいのかわからないんです。
それともやりかたが間違っているのでしょうか?
0112デフォルトの名無しさん
NGNGファイルをリソースに登録というのは具体的にどうやってんだ?
0113デフォルトの名無しさん
NGNG「リソースの追加」
ってやってたんですけどこれじゃexeの中に追加されていないことに
気づきました。
やっぱ無理なんですかね…
0114デフォルトの名無しさん
NGNGリソースの追加で何を追加したんだよ?
リソースの種類にパスというのがあるか?
根本的に認識が間違ってるクサイが。
0115デフォルトの名無しさん
NGNGすいません。初心者なもので…
自分はリソースにchmファイルを追加したんです。
そうすればexeの中にchmファイルが入って、exeをたたくとそのchmを他の場所にコピーできると
考えていました。
javaでいうとクラスもリソースもjarでまとめられた感じです。
MFCではexeの中に追加できないのでしょうか?
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNGありがとうございます。これでやってみます!
0118デフォルトの名無しさん
NGNGやっと判ったよ。
jarはアーカイブファイルだから、複数のファイルを一つにまとめる役割をしている。
リソースを追加するのはファイルを追加するのではなくてファイル中身のデータを追加するんだ。
リソースのデータをプログラム内から直接使う。
君のやりたいことはexeファイルとchmファイルをまとめて配布する事じゃないのか?
好きなアーカイバでアーカイブファイル、とくに自己解凍形式で作れば解決なのではないか?
0119デフォルトの名無しさん
NGNG救世主!!
ついでに言いますと、exeファイルはいりません。chmだけ配りたいんです。
chmを自動コピーするプログラムがexeというわけです。
0120デフォルトの名無しさん
NGNGそれならアーカイブ内にexeが無くても解決法は同じ。
zipでもlhaでもいいから適当なアーカイバで自己解凍書庫作れ。
君が驚くほど高機能なものが出来るよ。
0121デフォルトの名無しさん
NGNGこういうの知らない人がプログラミングやってるんだなぁ
時代は変わったね
012294
NGNG俺なんかHP29Cで高次関数書いてた頃は
ハードウェア/ソフトウェアとは何かさえ説明できなかったよ
アーカイバなんかあってもメインフレームかミニコンだったけど
手元になかったし、もちろん存在すら知らなかった
0123デフォルトの名無しさん
NGNGたかだか学校で資格取って、授業やった程度で。
家にもWindowsフォルダの中身いろいろ消しちゃった奴がいた。男の子で。
おまえはおばはんの初心者か!!!!
0124デフォルトの名無しさん
NGNGいるのですが、CFormViewで表示されているフォームにWeb browser controlを
置いているのですが、CFormView(CScrollView)が表示するスクロールバーが
じゃまなのですが、これを表示させないようにする方法はありませんでしょうか?
教えてください、すいません。
0125デフォルトの名無しさん
NGNGなんか、もうすこし推敲してから質問してはどうかね?
要は、FormViewのスクロールバーを消したいんでそ?
http://www.google.com/search?hl=ja&ie=Shift_JIS&q=CFormView+%83X%83N%83%8D%81%5B%83%8B%83o%81%5B+%8F%C1%82%B7&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0126デフォルトの名無しさん
NGNGあのー、メッセージウインドウにnumっていう
やつの数値を入れたいのですがどうすればいいのですか?
C言語は一通りわかるのですが、そのノリでいくと
MessageBox( "%d",num);
と、printfとごっちゃになったものを書いてもだめでした。
おしえてください、おねがいしまつ。
0127デフォルトの名無しさん
NGNGAFXMessageBox(printf( "%d",num));
でできたっけか?
その辺の書式でうだうだ実験やるのが面倒なんで
CString temp ←文字なり数値なり好きなものつっこむ。
AFXMessageBox(temp);
とでもやっときゃとりあえずでるよ。
0128デフォルトの名無しさん
NGNGそれだとバッファしないとだめじゃなかったっけ?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGやっぱこうだろ?
MessageBox((boost::lexical_cast<std::string>(num)).c_str());
っと冗談はさておいて。
CString str; str.Format("%d", num); MessageBox(str);
とか、sprintfを使うんで内科医?
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGワロタ
0133デフォルトの名無しさん
NGNGstrms.Format("num==%d",num);
AfxMessageBox(strms);
これで一応出来る。
0134133
NGNG0135デフォルトの名無しさん
NGNG実はまったくの初心者がオセロをつくっててこまってたのでし。
0136デフォルトの名無しさん
NGNG答えようとがんばってみたけど無理でした。
0137デフォルトの名無しさん
NGNGたぶん完成は10年後くらいになるんじゃないかなぁ
0138デフォルトの名無しさん
NGNG10年間オセロプログラムに対するモチベーションを保てたら、それはそれですごいと思うよ。
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGイベントハンドラTBN_DROPDOWNで、メソッドを実行できるところまでは
できているんですが、メニューをロードしようとすると必ず落ちてしまいます。
CMenu cme;
cme.LoadMenu(IDR_MENU1);←ここで必ず出る。もちろんリソースにはメニューあり
エラーはDebug Assertion Failedと出て、場所はFile: afxwin1.inl Line: 22 と出ます。
メモリ系のエラーということは推測できるのですが・・・。
環境はVC++6.0 WinXP Pro PlatformSDK有です。
どうかお願いいたします。
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGここまで出ていて何故ソース見ないんだ?
0144デフォルトの名無しさん
NGNGそれの意味がわかってないんじゃないか?
0145デフォルトの名無しさん
NGNG>>142>>143 当然見ました。
_AFXWIN_INLINE BOOL CMenu::LoadMenu(UINT nIDResource)
{ return Attach(::LoadMenu(AfxFindResourceHandle(
MAKEINTRESOURCE(nIDResource), RT_MENU), MAKEINTRESOURCE(nIDResource))); }←ここで落ちる
さらに中へ進むと
AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
if (!pModuleState->m_bSystem)
{
hInst = AfxGetResourceHandle();←ここで落ちる
if (::FindResource(hInst, lpszName, lpszType) != NULL)
return hInst;
}
となってます。
0146デフォルトの名無しさん
NGNGネタとしか思えなくなってきた_| ̄|○
0147デフォルトの名無しさん
NGNG内容は
Debug Assertion Failed!
Program: D:\〜\Debug\abc.exe(実行ファイルの保存先)
File: dbgheap.c
Line: 1011
Expression: _CrtIsValidHeapPointer(pUserDate)
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
と出ます。中止、再試行、無視とあるんですが再試行、無視しても実行はされません。
こういうエラーがでる原因は何が考えられるんでしょうか?
解答よろしくお願いします。
ちなみに、dbgheap.c というファイルは検索したんですが見当たりませんでした。
0148デフォルトの名無しさん
NGNGそのダイアログは、
中止→実行を中断
再試行→デバッガ起動
無視→そのまま続行
だ。
再試行してデバッガ起動すると、とりあえずアサーション起こしたところはわかる
0149デフォルトの名無しさん
NGNG変なポインタをライブラリに渡してるってのは分かるな。
そのライブラリもなんとなくdeleteっぽい気がしないでもないが。
0150デフォルトの名無しさん
NGNGDoc/Viewアーキテクチャでアプリを作ったんですが
ファイルに関連付けられるドキュメントは扱わないので
アプリのタイトルから 無題 - を削除したいのですが、
どうやったらいいんでしょう?
「無題」だけなら、String Tableをいじればいいんですが、
それでも - が残ってしまいます。何か良い方法ないですか?
0151デフォルトの名無しさん
NGNG下のどれか試してみて
PreCreateWindow()でcs.style &= ~(FWS_ADDTOTITLE | FWS_PREFIXTITLE);
CFrameWnd::OnUpdateFrameTitle()でSetWindowText()
CDocument::SetTitle()
0152デフォルトの名無しさん
NGNGCMainFrame::PreCreateWindow 内で
cs.style &= ~FWS_ADDTOTITLE;
0153デフォルトの名無しさん
NGNGクイックレスありがとうございます。
とりあえず
PreCreateWindow()でcs.style &= ~(FWS_ADDTOTITLE | FWS_PREFIXTITLE);
これで表示されなくなりました。
0154デフォルトの名無しさん
NGNGドモドモ。ありがとうございます。
0155デフォルトの名無しさん
NGNGSetWindowText("(゚д゚)ウマー ver 1.0");
とかでいけるんでないかい?
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGRebarのバンド位置を保存したり読み込んだりしたいのですが
どのようにすればできるのでしょうか?
よろしくお願いします。
0158デフォルトの名無しさん
NGNGダイアログの上にEditBox(EditCntrol)をいくつか置いて、
プロパティでAcceptFilesをTRUEにしました。
要は、このエディットボックスにファイルをドロップして
そのファイル名を表示したいのですが
PreTranslateMessage()の中でWM_DROPFILEを監視するとかでなく、
OnDropFiles()のように関数が呼ばれるようにはできないのでしょうか?
MESSAGE_MAPに
ON_EN_DROPFILES(IDC_EDIT1, OnEnDropFileEdit1)
みたいなイメージです。
なにか、情報があればよろしくお願い致します。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNGdonutを参考にすればいいと思うよ。
0161デフォルトの名無しさん
NGNGリンクのクリックとかを取得
ってことってできますか?
0162デフォルトの名無しさん
NGNG1.リソースエディタでダイアログバーを新規作成してコンボボックス(IDC_COMBO)を貼り付ける。
2.CMainFrameのCDialogBar型メンバ変数(m_wndDlgBar)を追加する
3.CMainFrameのOnCreate関数でCreateする
以上の手順でダイアログバーを生成しました。で、コンボボックスに項目を
追加しようと、CMainFrameのメンバ関数に下のコードを入れました。
CCombBox* pCombo = (CComboBox*)m_wndDlgBar.GetDlgItem(IDC_COMBO);
pCombo.InsertString(-1, "aaaaa");
ところが実行してみるとコンボボックスに項目が追加されません。
どんな原因が考えられるでしょうか。
0163デフォルトの名無しさん
NGNG追加されてないというのはどうやって確認したのか
0164デフォルトの名無しさん
NGNGpCombo.InsertString(-1, "aaaaa");
問題の件はどこが悪いのかはしらんけど、これってコンパイル通るのか?
なんかすごいことしまくってるな。
0165デフォルトの名無しさん
NGNGもいちど見直してみてはいかが?>>162
0166162
NGNG>163
コンボボックスをクリックしてもaaaaaが表示されませんでした
>164
すいません
CComboBox* pCombo = (CComboBox*)m_wndDlgBar.GetDlgItem(IDC_COMBO);
pCombo->InsertString(-1, "aaaaa");
の間違いでした。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNGオレもそう思って高さ縮めてやってみたけど
追加すると拡張されるようだ
0169デフォルトの名無しさん
NGNGSetCurSel
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNGどのようにデータを保存したらよいのでしょうか?
0172デフォルトの名無しさん
NGNGXML
0173デフォルトの名無しさん
NGNGCButton.Create()で設定したテキストを取りだしたいんですが、どうすればいいでしょうか?
ボタン状態を取得するのはあったんですが、それはスタイル情報だけみたいなんです。
よろしくです。
0174デフォルトの名無しさん
NGNGバイナリデータを表示してくれるクラスはありますか?
0175デフォルトの名無しさん
NGNGGetWindowText()
0176デフォルトの名無しさん
NGNGそりゃ16進ダンプで出せってことか?
多分ないぞ。自分で作れ。
0177デフォルトの名無しさん
NGNG0178デフォルトの名無しさん
NGNGデバッグ用ダンプなら
CDumpContext
CObject::Dump
AfxDump
というのがあるが
データを16進数で文字列化したいっていうのだったら
wsprintf(DumpBuf, "%02x", buf[i]);
とかでループすれば?
0179デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGそんなコントロールないのかな?
コンボボックスのボタンの所が"..."ってなってるヤツ。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGようわからんけど、標準のダイアログの引数うんにゃってやってなんかしたら
ディレクトリのパスは取得出来たと思うぞ。
0184デフォルトの名無しさん
NGNG1."..."というテキストを設定したボタンをエディット・ボックスの横に置く
2.ボタンにCFileDialogを起動してパスを取得するコードを付ける
3.取得したパスをエディット・ボックスに入れる
0185デフォルトの名無しさん
NGNG4.最後によく煮込んだカレーをまんべんなくかける。
これで完璧。
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG> ディレクトリを指定できるエディットボックスを作りたいんだけど、
??????
0189デフォルトの名無しさん
NGNGありがとうございます。
0190デフォルトの名無しさん
NGNGディレクトリを選択できるヤツあるじゃないですか?
あれはどうやるんですか?
0191デフォルトの名無しさん
NGNGttp://codeguru.earthweb.com/treeview/CDirTreeCtrl.shtml
ttp://codeguru.earthweb.com/treeview/DynmDirTree.shtml
0192デフォルトの名無しさん
NGNGこれも
0193デフォルトの名無しさん
NGNGなんていい人達なんだ・・・
金持ちになったら雇ってあげます。
0194デフォルトの名無しさん
NGNGそんな気使わなくていいから今すぐ千円くれ。
0195デフォルトの名無しさん
NGNGそんな気使わなくていいから今すぐ一万円くれ。
0196デフォルトの名無しさん
NGNGオイおまいら
>>191-192を書いたのはオレなんだが・・・
0197デフォルトの名無しさん
NGNGオレオレ詐欺ですか?
0198デフォルトの名無しさん
NGNGCEditViewにログを出力していくようなプログラムなんですが
ログを保存しようとすると文字化けしてしまいます。
画面上は正しく表示されているんですが、
保存するとUNICODE変換されてしまっているようです。
hEdit.ReplaceSel(strbuf); //strbufはMBCS
でも
::SendMessage(hEdit, WM_GETTEXT, sizeof(buf), (LPARAM)buf); //bufはMBCS
でも
LockBuffer();でみると勝手にUNICODEに変換されてしまっています。
なにが原因なのかさっぱりわからないんです。
よろしくお願いします。
.Net2003 XPSP1
0199デフォルトの名無しさん
NGNGサブクラスにしたstaticコントロールに画像ファイルをドラッグ&ドロップして
画像を表示させようとしていますが、ドラッグした後に一度ウィンドウを
他のウィンドウの下に隠さないと描画されません。
OnPaintを直接呼び出したり、WM_PAINTのメッセージを送ってもダメなので
解決法がわかりません。
.Net2003Pro XPProSP1です。
よろしくお願いします。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG無効領域(Windowsを一度隠すとか)ができるとWM_PAINが発生し、
めでたく描画できます。
InvalidateRectはこの無効領域を発生させるためのものです。
0202199
NGNGOnDropFiles()の最後で利用したら解決しました。
ありがとうございます。
0203デフォルトの名無しさん
NGNGMFCから離れて久しい俺が答えるのもはばかられるけど
NT系は内部で文字列をUnicodeで管理してるからじゃないですか?
0204デフォルトの名無しさん
NGNG>>198
の出だしに藁他
0205デフォルトの名無しさん
NGNGBOOL GetImageInfo( int nImage, IMAGEINFO* pImageInfo ) const;
nImage :イメージの 0 から始まるインデックス。
を用いて、たとえばリストの3番目のIMAGEINFOを得ようと、 nImage に2といれても、
イメージリスト全体の情報が取られるようで、
そこから得られた HBITMAPを描画すると、イメージリストの全体の画像が表示されます、
リストの特定の番目の IMAGEINFO が得られるような雰囲気がある関数なんですが、
そうなってくれません。
任意の IMAGEINFO が欲しいときはどうしたらいいでしょうか?
0206デフォルトの名無しさん
NGNG先ずはマルチはよせ。
0207デフォルトの名無しさん
NGNGpImageInfo->rcImage
0208デフォルトの名無しさん
NGNG"2003/03/02 12:34:56"といったような文字列をCTimeに変換する関数はありますか?
sscanf使っても出来るんですが、この手の変換は良く使われそうだからありそうな気が。
0209デフォルトの名無しさん
NGNGCTimeのメンバを調べてみる
オブジェクト作成に関する関数は以下の三つ
CTime()
GetCurrentTime()
operator =
勝手形式で文字列化したものは自分で処理するべし
0210デフォルトの名無しさん
NGNG直接は無いような気が。
InternetTimeToSystemTimeとか、COleDateTime::ParseDateTimeとか、代替がきくやつはあるけど。
どっちも反則気味だけど
0211デフォルトの名無しさん
NGNG一般的なものはないんじゃないかな。
0212デフォルトの名無しさん
NGNGttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_MFC_COleDateTime.3a3a.ParseDateTime.asp
これならいけそうだな
0214デフォルトの名無しさん
NGNGMFCのAppWizardで生成されあcppファイルには全て先頭に
ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
と書かれますが、なぜデバッグ時だけTHIS_FILEを変数として定義
する必要があるのでしょうか?
0215デフォルトの名無しさん
NGNG初心者レベルで、本当に1からみたいなやつで。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG初めて聞いたよ。詳しく教えてくれ。
0218デフォルトの名無しさん
NGNGDEBUG_NEWで確保したメモリをdelete忘れしたときに、DEBUG_NEWされたソースファイル名と行番号を表示するのに使うから。
別に無くてもプログラム自体は動く。
0219デフォルトの名無しさん
NGNG1つのクラス(A)を複数のクラス(B,C,D)で使っているんだけど、
そのAクラスにブレークポイントをおいた場合、
デバッガ上で、どのクラス(A,B,C)から呼び出されたかかを知る方法は無いでしょうか?
プログラム的に理解できるように作成するしか無いでしょうか?
0220デフォルトの名無しさん
NGNGそのためのスタックトレース。
0221デフォルトの名無しさん
NGNGリソースで96x96(256色)のアイコンだけを作成して下のように
SetIconで貼り付けたのですが、サイズが32x32に縮小されてしまいます。
m_Static1.SetIcon(AfxGetApp()->LoadIcon(IDI_ICON1));
m_Button1.SetIcon(AfxGetApp()->LoadIcon(IDI_ICON2));
縮小されずに表示するにはどうすればいいですか
よろしくおねがいします。
0222デフォルトの名無しさん
NGNGアイコンやめてビットマップ貼ったら?
0223221
NGNG最初はビットマップでやっていたのですが画像の背景を
透過にしたかったのでアイコンにしました。
ビットマップでも画像の背景を透過できるのであれば
どのような方法があるのでしょうか?
0224221
NGNGm_Button1.SetIcon((HICON)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1),IMAGE_ICON,0,0,LR_DEFAULTCOLOR));
LoadImageがキャストできたのでこの方法で解決しました。
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG釣られませんよ。
0227デフォルトの名無しさん
NGNGMFCにはあんまり関係ないんですけど…
最近VCがやたら固まります。
特にビルドとかしたら、かなりの確立で「応答なし」状態になってしまいます
以前まではまったくこんなことはなくすらすらとビルドできていたのですが…
どなたか解決法おしえてください
おねがいします
0228デフォルトの名無しさん
NGNG現象出る直前に何をしてたか語れ。
0229デフォルトの名無しさん
NGNGいぁ、普通にビルドしてたんすよ。
そしたら急に固まっちゃって…、それ以来ずっとです
0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNG0232225
NGNG本当にわからないんです。
0233227
NGNG固まります。
>>.nobファイル
これ自体見当たらないのですが…どこにあるのでしょうか?
0234227
NGNGVC++自体は固まってはいません。ビルドの中止も選べますが…選んでも何の
応答もありません、結局のところ強制終了するしか次の作業に進む方法はありません
いったいどうなってるんでしょう…
0235227
NGNGDebugフォルダを消すとビルド+コンパイルが可能になります。
しかしいったんDebugフォルダができてしまうと、それ以降コンパイルができなく
なるようです…
0236デフォルトの名無しさん
NGNGOSごと再インスコしたら?
もしくはVCだけ、アンインスコ/インスコするとか。
メモリ周りは大丈夫かな?
うちはメモリ設定がSTDだと、メモリがスピードに
ついていけずに誤った値になってしまってたよ。
時々、いきなりリブートしてたんだけど、
メモリ設定を遅めにしたらmemtest86でも
エラーが出なくなったし安定した。
0237デフォルトの名無しさん
NGNGそれ、うちもたまにある。再現不可能。
でも、忘れたころに起きる(w
ビルド直前にファイルは保存するみたいなので、
KILLしてもソース関係は最新状態で残るみたいだけど。
ビルドは終わったのに制御が戻ってこないっていう感じ。
ボタンやメニューはビルド中のステータスのまま。
なんか、特定の操作を行った時に起こる感じはするが、
それがどういう手順なのかはわからない。
ビルドを中止した後に再ビルドすると、
起きやすい感じ(あくまでも感じ)はする。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG無効で灰色になっているメニューを描画する関数をなんて言いましたっけ?
誰か覚えている方、関数名とその引数フラグを教えて下さい。
0240デフォルトの名無しさん
NGNGXPで使用しているとき、VCのsp5を入れていないと
起こるようです。sp5を入れたらほぼ無くなります
0241デフォルトの名無しさん
NGNGDrawState
引数はMSDNで...
0242デフォルトの名無しさん
NGNGDrawState? 詳細は自分で調べて。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNG灰色文字列
かも
0245227
NGNGsp5入れたら解決しました
ありがとうございますm(_ _)m
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGどうもありがとうございました
0250デフォルトの名無しさん
NGNGMSDN読め。
共有メモリ、セマフォ、mutex、選り取り緑だ。
0251デフォルトの名無しさん
NGNG何かいい方法はないですか?
アクティブになっているエクスプローラのウィンドウハンドルとか取得すればなんとかなりますか?
0252デフォルトの名無しさん
NGNGエクスプローラのウインドウ(クラス名ExploreWClassかCabinetWClass)をEnumWindowsなどを利用して検出、
その子ウインドウのクラス名SHELLDLL_DefViewをFindWindowExを利用して検出
そのまた子ウインドウのクラス名SysListView32のウインドウがフォルダービューのウインドウとなるので
同じくFindWindowExを利用して取得。
int Selected=ListView_GetSelectedCount(ハンドル);
関数を利用すれば選択されているファイル数が取得できる。
while(1)
{
i = ListView_GetNextItem(ハンドル,i,LVNI_ALL|LVNI_SELECTED);
if(LvItem->iItem == -1)
break;
}
と回せば、選択されているアイテムのインデックスが次々に返る。
しかし、残念ながらそのアイテムのテキストを取得する方法がどうしてもわからん。
恐らくListView_GetItemかListView_GetItemTextを使用すると思われるが、
ことごとく失敗するのでその先は自分で調べてください
0253デフォルトの名無しさん
NGNGは
if(i == -1)
に訂正
0254デフォルトの名無しさん
NGNGいまさらだがCImageList::ExtractIconも結構使えるから
頭の片隅に入れておいて損は無いよ
0255デフォルトの名無しさん
NGNGデータ件数が多すぎてどうにも煮詰まってます。
0256デフォルトの名無しさん
NGNG意味不明。
0257デフォルトの名無しさん
NGNGいるのに#pragma onceまでされているのですか?
0258デフォルトの名無しさん
NGNGカスタムリソースとして登録したWAVファイルを
MCIで再生させる方法はありますでしょうか?
#一時ファイルとして書き出したりしない方法であればお願いいたします
0259デフォルトの名無しさん
NGNG性善説: M$にもアフォはいる
性悪説: 他社のコンパイラを牽制するため
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGありがとうございます。
その方法で何とかがんばってみます。
0265デフォルトの名無しさん
NGNGリソース内にはタブがありましてタブをコントロールしたいのですが
下記のようにするとエラーがでます。TCITEMの初期化の問題でしょうか?
void CMainFrame::OnTest()
{
resouce_dialog rd;
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_TEXT;
TabCtrlItem.pszText = "Hi!";
rd.m_tab.InsertItem(1,&TabCtrlItem);
rd.DoModal();
}
0266265
NGNG0267デフォルトの名無しさん
NGNGできますか?できるとすればどうやったらいいのですか?
0268デフォルトの名無しさん
NGNG0269267
NGNGすんません。初心者なのでよく分からないのですが、それはこういうことですか?
例えばビューが2つのコントロールを持っていたとして、その2つのコントロールは
クライアント領域全面を占めている。このとき、切り替えたい場合、一方のコントロールを
ShowWindowで表示、もう一方のコントロールは非表示にする。
これなら簡単そうですね。Visual Studio.NETではコードの編集中とデバッグ中では
スプリッタウィンドウの分割すら切り替わっていますが、これは難しそうですね。
どうも回答ありがとうございました。
0270デフォルトの名無しさん
NGNG最小化されているかどうかを知るにはどうすればいいのでしょうか?
最小化されてるのに毎フレーム描画処理してて、無駄かな、と。
0271デフォルトの名無しさん
NGNGGetWindowPlacement()
VS2003で開発してるんですけどメニューに項目を追加してIDを入力して
クラスビューからクラス選択してプロパティでイベントの追加でメニューに
追加したID探しても見つからないことが多いんですけど何ででしょうか?
メニューエディタからプロパティで確認するとIDが数字になってるときがあり、
IDを選択しなおすとイベント追加できるんですけど。
正しい順序とかあれば教えてください。おながいします。
0272デフォルトの名無しさん
NGNG今はDrawItemの中でCButtonオブジェクトを移動してるんですが、これだと非表示領域の分が画面に残ってしまいます。
行が非表示になる時にイベントが来ればいいのですが、そういうのはありますか?
0273デフォルトの名無しさん
NGNGBOOL CWnd::IsIconic()
0274デフォルトの名無しさん
NGNGレポートビューになっている時に、キー操作でスクロールさせた場合ってメッセージ何も�dでこないのでしょうか?
OnVScrollは反応しませんでした。
0275デフォルトの名無しさん
NGNG空気嫁!
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGサービス関係はそうじゃないか?
試しにタスクマネージャで適当なサービスを
終了させてごらん。アクセスを拒否されましたとか出るでしょ。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNGどっちかが終了したらもう一方が再び起動させるというのは?
同時に終了されるとダメだけど。
0280デフォルトの名無しさん
NGNG現れないのがあったと思うが、これなら
終了できんぞ。w
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG書く場所について質問です。
あるビューにメニューハンドラを書くと、そのビューがアクティブのときは、そのメニュー
項目が選択可能となりますが、非アクティブのときは選択が不可能です。
アプリケーションクラスやフレームウィンドウにメニューハンドラを書けば、ビューの
状態に関わらず、メニューが選択可能となりますが、必要な情報にアクセスしづらく
なります。
こういった場合のどのようにするのが一番いいのでしょうか?
0286デフォルトの名無しさん
NGNGダイアログベースでメインのダイアログから
モードレスダイアログを表示しているのですが、
メインのダイアログを最小化すると、
表示されていたモードレスダイアログも見えなくなります。
そのモードレスダイアログの親はNULLにしてあるのですが...
どうすればメインダイアログだけを最小化出来るんでしょうか?
0287デフォルトの名無しさん
NGNGメッセージからイベントを設定してもイベント起こしてくれません。
デバッガで見たところ、そのルートすら通ってくれていないようです。
自作のATLActiveXコントロールをラップしたMFCActiveXコントロールクラスから
イベントを受け付ける方法はどうしたらよいのでしょうか?
0288デフォルトの名無しさん
NGNG>状態に関わらず、メニューが選択可能となりますが、必要な情報にアクセスしづらく
>なります。
なぜ?MainFrameなりWinAppなりからViewにメニューが呼ばれたよと
教えてあげればいイだけジャン
0289デフォルトの名無しさん
NGNGビューに関することならSplitter、ドキュメント操作ならDocumentにハンドラ作ればいいんじゃないの?
0290デフォルトの名無しさん
NGNGWinMEの場合、文字列の長さをバイト数で返すんじゃなくて
文字数を返すみたいですが、これってWinMEのバグですか?
# 例えば"abcあいう"なら通常9を返すところが6が返って来る。
GetLBTextのMFCの内部コード見てみると明らかにヤバいんですけど。
void CComboBox::GetLBText(int nIndex, CString& rString) const
{
ASSERT(::IsWindow(m_hWnd));
GetLBText(nIndex, rString.GetBufferSetLength(GetLBTextLen(nIndex)));
rString.ReleaseBuffer();
}
# GetLBTextLen(nIndex)で本来より少ない文字数が返ってくるため
# GetBufferSetLengthで文字数より少ないバッファしか割り当てられず
# バッファオーバーフローを引き起こす可能性が。
0291デフォルトの名無しさん
NGNGMFCの場合、NULLにすると親なしって訳じゃないんだよ
ソースを追っていってごらん
0292デフォルトの名無しさん
NGNGそれはほんと?マルチバイトの文字数を返してる感じ。
ホントだとしたらMEのコンボボックスAPI関連のバグっぽいけど。。。。
0293290
NGNGホントです。
これがWinMEだけの問題なのか9x系全般における問題なのかも気になるところ。
なおXPは無問題でした。
0294デフォルトの名無しさん
NGNG3年近く前に既出です。
http://hp.vector.co.jp/authors/VA016589/wtl/bugs/bugs.html
0295290
NGNG非常に参考になりました。
そりゃそうですわ、拡張コンボボックス扱うプログラム組めば
絶対気が付きますもん。このバグ。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNGBOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
// アクティブでないビューにもメッセージを送る
if(m_wndSplit.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)){
return TRUE ;
}
CCmdTarget *pview ;
int i, j, n, m ;
n = m_wndSplit.GetRowCount() ;
m = m_wndSplit.GetColumnCount() ;
for(i = 0 ; i < n ; i++){
for(j = 0 ; j < m ; j++){
pview = (CCmdTarget *)m_wndSplit.GetPane(i, j) ;
if(pview->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)){
return TRUE ;
}
}
}
return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
CSplitterWndを持ってるクラスでな
0299デフォルトの名無しさん
NGNGスタティックライブラリでクラスや構造体を定義します。
struct TESTSTRUCT{};
class TestClass{};
あるDLL内でそのライブラリ内のクラスを使用します。
class DLL_DECLSPEC DLLTestClass : public TestClass{
TESTSTRUCT str;
};
としてDLLをビルドしたとき、
"DLL インターフェイスではない TestClass が DLL インターフェイスのベースになる class 'DLLTestClass' として使われています。
またクラス内でライブラリのクラスや構造体を使用したとき、
"__export キーワードを使って class DLLTestClass にエクスポートしてください"
といった警告が出ます。
そして作成したDLLを使用するプログラムでも同様の警告がでます。
この警告を無くすにはどうしたらよいのでしょうか?
"ライブラリAがライブラリBを使用する"というライブラリを作成する場合、
どうしたらいいのでしょうか?
0300デフォルトの名無しさん
NGNGどうやったらいいのでしょうか?
いちおうSetPixelを使って↓のようにはできます。
でもこれだと1ピクセルずつ描画するので遅すぎです。
配列を一気に描画する方法はありませんか?
for(j=0;j<yh;j++)
for(i=0;i<xw;i++){
color=pDC->GetPixel(i,j);
r=GetRValue(color);
g=GetGValue(color);
b=GetBValue(color);
pDC->SetPixel(i,j,RGB(r,g,b));
}
}
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGBitBltはお嫌い?
CreateBitmapにも初期値は指定できるが・・・?
0303デフォルトの名無しさん
NGNGそれだと、
pDC->(i,j, pDC->GetPixel(i,j));
でいいんじゃね?
0304303
NGNGpDC->SetPixel(i,j, pDC->GetPixel(i,j));
な。
0305300
NGNGあした試して見ます。
X×YのRGBの画像を格納した配列を
img[x*y*3]としたとき
BitBltを使って描画するとどうなるんでしょうか?
デバイスコンテキストの使い方がよくわからないです。。。
Windowsプログラム初心者なものですいません。
0306デフォルトの名無しさん
NGNG勘弁してくれ。
0307デフォルトの名無しさん
NGNGDIB使え
0308デフォルトの名無しさん
NGNGSortItemsで指定したコールバック関数(CompareFunc)の
LPARAM lParam1, LPARAM lParam2って何を示しているのでしょうか。
ぐぐって見たところ比較するアイテムのインデックスとあちらこちらで書いて有りましたが
実際見てみるとインデックスなどではなくなんかのポインタのようです。
これからどのようにしてアイテムを識別するのでしょうか。
0309デフォルトの名無しさん
NGNGこれはSetDataでアイテムに関連付けされたデータのポインタですね。
よくサンプル見てみるとSetDataでインデックスの値を設定していました。
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG0312299
NGNGやはり警告が出るからには間違ったやり方なんだと思うんですけど、
対処法ご存知の方いませんか?
0313デフォルトの名無しさん
NGNGドッキングさせているのですが、それぞれ
DockControlBar(&myLeftBar, AFX_IDW_DOCKBAR_LEFT);
DockControlBar(&myTopBar, AFX_IDW_DOCKBAR_TOP);
とした場合に
┏━━━┓
┣┳━━┫
┃┃ ┃
┗┻━━┛
こういう具合にドッキングさせることはできるのですが、
┏┳━━┓
┃┣━━┫
┃┃ ┃
┗┻━━┛
こういう具合に、左ペインがFrameWnd上端まで貫通した形でドッキング
させることができません。DockControlBarを呼ぶ順番を変えてみたりも
しましたがダメでした。
コントロールバー類は動的に追加されるので、スプリッタは選択しませんでした。
何か解決法ご存知の方いらっしゃったらよろしくお願いします。
0314デフォルトの名無しさん
NGNG漏れもそれで苦心したことがあったけど、CControlBarでは多分無理。
何かのドキュメントで読んだ覚えがあるのだけど、
優先順位は、上・下 > 左・右 らしい。
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGCOleCurrency operator/(COleCurrency curX, COleCurrency curY);
を定義してくれ〜。
(curX.m_cur.int64 / 10000.0) / (curY.m_cur.int64 / 10000.0)
とかは無しで
0318313
NGNGMSDNの「テクニカル ノート 31: コントロール バー」に
「コントロール バーの配置アルゴリズム」という項があって、
バーたちはZオーダー順に親のクライアント領域を奪い取って行く、
というのは分かったんですが、実際にそれぞれのBringWindowToTopを
呼んでもZオーダーは変わってくれません。
MFCのソースを読んで行くと、どうやらコントロールバーは一旦
CDockBarを介して配置されているようなので、
HWND hwnd = m_MyLeftBar.GetParent()->GetSafeHwnd();
::BringWindowToTop(hwnd);
としたのちCFrameWnd::RecalcLayout()を呼んだところ無事
313の下のように配置することができました。
でも、この方法だとまだ
┏━━━━┓
┣┳━━━┫
┃┣━━━┫
┃┃ ┃
┗┻━━━┛
というのは実現できないんだよなあ・・・・。
0319300
NGNG1日でだいぶ上達した気がします。
また何かあったらよろしくお願いします。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGユーザレベルの意見で悪いが、そんなドッキングは構造的に無理なんじゃないか?
VC++でやってみてもそんな配置に出来ねえし・・
0323デフォルトの名無しさん
NGNG以下のように取得するのが普通ですか?
10年少々前のお話ですが、昔は、フォントの文字高+行間だったと
記憶しております。確かLogFontEXとかそんな名前の構造体を取得して
行間を取得していたような・・・
// TODOing: この場所にネイティブ データ用の描画コードを追加します。
long lMaxLine = pDoc->m_lMaxLine;
int iCharHight;
CFont* pFont;
if ( ( pFont = pDC->GetCurrentFont() ) == NULL )
iCharHight = 20;
else {
LOGFONT lf;
pFont->GetLogFont(&lf);
iCharHight = lf.lfHeight;
}
for (long i=0; i<lMaxLine; i++)
pDC->TextOut(0, i * iCharHight, *(pDoc->m_ppLine[i]));
0324デフォルトの名無しさん
NGNG0325323
NGNGありがとうございます。
LONG lCharHight;
TEXTMETRIC tm;
if ( pDC->GetTextMetrics(&tm) )
lCharHight = tm.tmHeight +tm.tmExternalLeading;
else
lCharHight = 20;
でしたね。
0326デフォルトの名無しさん
NGNGリソースエディタのダイアログエディタでテキストボックスとボタンをつくり
ボタンを押したらOpenFileNameでファイルを選択。その選択されたファイル名を
テキストボックスの変数に代入、そして画面上でも反映させたいんですけど、どうすればいいのでしょうか?
0327デフォルトの名無しさん
NGNGなんだそりわ
0328デフォルトの名無しさん
NGNG人に聞かずとも、ちゃんと調べれば誰にでもわかる。
わからなかったら、プログラムやまれ。
0329デフォルトの名無しさん
NGNGダイアログエディタでボタン作ってそれを押したときに
GetOpenFileName関数を呼び出してダイアログからファイル名を選択するようにしたいのですが
これじゃ変なんですか?
>>328
時間かければわかると思いますがちょっと今時間がないんです。勝手な理由ですが
ヒントだけでもお願いします
0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG普通のやり方はどんな感じでやるんですか?
>>331
msdnでふんばってみます
0333326
NGNG申し訳ないです
0334デフォルトの名無しさん
NGNGWinよりワンクリでプレビューするアプリを作成しています。
CinternetSessionクラスを使用して
ファイルをWinに落とし込み 漢字コード 改行コードを変換する仕組みなのですが
逆に修正したファイルをそのままUNIX側にPut(書き込み)
できないものか思案しています。
変換については、win漢字コード、改行コードのロジックをその
まま逆変換でいけそうなのですが、
ファイルを置く処理が見つかりません。どなたか教えていただけないでしょうか?
0335334
NGNGWin側の操作画面はVBで作成しており一覧が
ファイル一覧がFlexGridにより表示されまして
対象ファイルをクリックすると、VC(MFC)で
作成したDLL関数をコールします。
NT4.0 VS97(SP3)となります。
0336デフォルトの名無しさん
NGNGリリースバージョンもVCのデバッガ上なら動作するが、
リリースバージョンを単独で立ち上げると、
DocやViewのコンストラクタまでは行くものの
OnNewDocumentまでたどり着けずアプリが起動しない症状には、
どんな原因がありそうですか?
#ifdef _DEBUG などはウィザードの作成したもの以外ありません。
リビルドや「プロジェクトの設定」の最適化の無効もだめでした。
0337デフォルトの名無しさん
NGNG0338デフォルトの名無しさん
NGNGカレントディレクトリに依存しているものがある
0339デフォルトの名無しさん
NGNGメンバ関数のLoadBitmapsにはリソース名かIDしか渡せません。
他のモジュールにあるビットマップリソースを使いたい場合は
CBitmapButtonは使うなってことでしょうか?
0340デフォルトの名無しさん
NGNGCButtonのオーナードローで我慢汁
0341デフォルトの名無しさん
NGNG派生して好きなようにロードすりゃいいやん。
0342336
NGNG回答ありがとうございます。
エラーの類は皆無です。
タスクマーネジャにちらっと出てきてそのまま終了。
タスクバー等にはまったく反応がありません。
"Release"フォルダ内で実行しても変化なしです。
デバッガで走らせているときはちゃんと動作するので、
どうやって調べたものか困っています。
0343デフォルトの名無しさん
NGNGとりあえずオーナードローでなんとかなりますた。
派生だとCBitmapがprotectedで継承すると・・?と、勉強不足で
まだよくわかりません。こっちは将来の宿題にしておきます。
回答どうもでした。
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGダイアログにエディットボックスを貼り付けてるのですが、エディット
ボックス全体の色は変えられても、特定行だけ変える方法が分から
ず困っております。
尚、環境はVC6++でMFC42を使っています。
0346デフォルトの名無しさん
NGNGリッチエディットか自作。
0347デフォルトの名無しさん
NGNGメッセージボックスを使うのは駄目?
1動作ごとにメッセージボックスでとまるようにガシガシ入れ込めば、
どこまでちゃんと動いているか調べられるよ。
ついでに使ってる変数の値なんかも表示するようにしておけば、
面倒だけど、デバックモードみたいに動作をおっかけること可能。
0348デフォルトの名無しさん
NGNG0349336
NGNGどうもです。一応ポインタ周りなんかは見ましたが、
不正な値ではなさそうです。
前述の通り、MainFrame、Doc、Viewの各コンストラクタ
止まりで謎の落ち方をするのでお手上げ状態。
1ヵ月ぐらいさかのぼって、正常に動いた時点から
やり直すしかなさそうです。
0350デフォルトの名無しさん
NGNGAppのほうは追っかけてる?
InitInstanceの中おっかけてみそ
0351デフォルトの名無しさん
NGNGTRACEマクロ知らんのか
printfと同じ使い方で経過表示できるぞ
0352デフォルトの名無しさん
NGNGリリース版でTRACEが使えるとは知らなんだ。
どうやって使うの?
0353デフォルトの名無しさん
NGNG336は、
>デバッグバージョンでコンパイルすると起動し、
>リリースバージョンもVCのデバッガ上なら動作するが、
>リリースバージョンを単独で立ち上げると、
って言ってるのだが、
OutDebugStringの結果は何で受け取ればいいの?
>>351
俺も知りたい。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGメッセージループのなかでDrawFrame関数を呼び出して
いるんだけど
void DrawFrame()
{
static BOOL Flag = FALSE;
if( !Flag )
{
OpeningInit();
Flag = TRUE;
}else OpeningMain();
}
OpeningInitで初期化をしてるんだけど
もっといい方法ないですか?
単なる変数の初期化なども、このやり方だと不便で・・・
クラスを使ってもいいので簡単な方法教えてください
一度しか呼び出したくない関数や、ある時に一度だけ変数に代入したい
時など困ってます
0356デフォルトの名無しさん
NGNGそうやるのがいちばん簡単だと思うが。
あと、Flag なんて言う何をしてるかわからん変数名はやめた方がいい。
(これぐらい短いと問題は少ないが。)
void DrawFrame(){
static BOOL FirstTime = TRUE;
if( FirstTime ){
OpeningInit();
FirstTime = FALSE;
} else {
OpeningMain();
}
}
0357355
NGNGこれでよかったんですね
後
0359355
NGNG後、クラスでコンストラクタをつかっての初期化が便利と聞いたけど
関数を呼び出すたびにコンストラクタも呼び出されるんですね
初めの1回だけなら便利なのに・・・
0360デフォルトの名無しさん
NGNGファイルをロックしたいんでHANDLEが欲しいのだけど、
問題のファイルは既存のライブラリ内でfopen()されている。
#unixならfileno()すればすむんだけど
ストリームポインタからHANDLEを取得する手段ってなんかあったっけ?
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNGおまいは参照辺りをしっかり勉強した方がいいぞ
0363デフォルトの名無しさん
NGNG関係ないと思うが、VCから起動する場合と
エクスプローラからダブルクリックで起動する場合、
コマンドライン引数が微妙に違う。(漏れの環境(VC6.0SP5XP)では)
何が違うかと言うとGetCommandLineで返ってくる文字列が
エクスプローラの場合最後にスペースが付加され終わっている。
その違いで出てたバグを発見するのにずいぶん苦労した記憶アリ。
0364デフォルトの名無しさん
NGNG一度中間ファイルの類を全部消してからリビルドしてるかな?
0365デフォルトの名無しさん
NGNGそのケースだったら、プロジェクトの設定でコマンドラインパラメータに空白を入れておけば再現できそうだね。
0366デフォルトの名無しさん
NGNGThanx!
手元に開発環境ないんで検索してみた。
Pythonのマニュアルしか見当たらなくて不安だけど、明日出社したら早速試してみるよ。
0367デフォルトの名無しさん
NGNGFindWindowでハンドルとって ShowWindowでHide にしても駄目でした。
お願い致します。
0368デフォルトの名無しさん
NGNG拾ってくれないんですけど仕様ですか?
0369デフォルトの名無しさん
NGNGキャプションのコロン後の数字ってどういう規則で付いてるの?
教えて下さいませm(_O_)m
0371デフォルトの名無しさん
NGNG関数の戻り値にCStringを指定したときの、CStringの動作がよくわからない
いったん、コピーされるのかな・・?
1.
CString test1(){
CString aaa("test");
return aaa;
}
2.
CString test2(){
char aaa[] = "test";
return aaa;
}
1、2とも問題ないですか?最近までCで、char使ってやってたんで、1でも不安なんだけど、
引き継いだソースに2みたいなのがあって、これはどうなんだろうと・・
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG寿命も何も変数なんだからそこはCの基礎とかわらんだろ
0375371
NGNGいや確かchar *で返した場合
char *test3(){
char aaa[] = "test";
return aaa;
}
関数抜けたら寿命が尽きるので、その配列使っちゃいけないってきいたきがするから不安だったんです。ドモドモ
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGstatic ....
0378336
NGNGどうもありがとうございます。
>>363
それは知りませんでした。その辺、調べてみます。
>>364
はい。もうDebugもReleaseもフォルダごとごっそりと。
あと、ソースファイルの階層には、
消さなきゃいけないものなんてないはずですよねえ……?
0379デフォルトの名無しさん
NGNG.aps.clw.ncb.opt.plg辺りも一応消しておくと良いかも。
0380デフォルトの名無しさん
NGNG尤も、残す必要もさらさらないけどな。
0381デフォルトの名無しさん
NGNG.clwはマズくねーか?
0382デフォルトの名無しさん
NGNGなきゃ勝手に生成するっしょ。
消すまでもないと思うがな。
0383デフォルトの名無しさん
NGNGただしそれがコンパイル時にエラーの原因になるかどうかは分かりませんが。
0384デフォルトの名無しさん
NGNGを付け加えたりとか、関数なんかもそうだけど、そういうことが何回も
繰り返していると時々、ソースは正しいとしか見えなくてもコンパイル
するとエラーになったり。そういう時は.clwを削除して作り直すと
何事も無かったかのようにコンパイルが通る。
0385336
NGNG残念ながら.clw等の削除もコマンドラインのほうも
解決には至りませんでした。
おそらくポインタ or 配列がらみだと思うんですが、
おとなしくロールバックします。ともかく感謝です。
0386デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
0387デフォルトの名無しさん
NGNGどうやれば良いですか?
0388デフォルトの名無しさん
NGNGどんなものですか?
0389387
NGNGWindowsに一旦処理を渡す時に使いました
無限ループを組んで、その中にDoEventsを入れとくと、
無限ループ中でもWindowsがメッセージを発行して、
イベントが発生(何か変・・・)してくれるものでした
0390デフォルトの名無しさん
NGNGふつうは無限ループの中で直接APIを呼ぶと思うのですが。
VBにはそういうものがあるのですね。
PeekMessage、DispatchMessageあたりを調べてみてはどうでしょう?
0391387
NGNG早速の回答ありがとうございます!
こんな感じで出来ました!
MSG msg;
while(1){
if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
if (msg.message = WM_QUIT)break;
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
}
SendMessage(WM_QUIT,0,0);
0392387
NGNGmsg.message == WM_QUIT
に直したら、終了しなくなりました・・・
0393デフォルトの名無しさん
NGNGと、考えてみては?
0394初心者
NGNGMFCを勉強するにはどのような書籍を読んだらよいのでしょう?
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNGわかったサルを1例でも挙げてみな
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNG初心者といっても様々。
このスレに記事をつけたのだから「VC++は持ってるんだろうな」
ぐらいしか分からない。
君のレベルが分からないと薦めようもない。
0400デフォルトの名無しさん
NGNGダイアログが閉じたあとに、::AfxMessageBox()や::MessageBox()を呼んでも
メッセージボックスが画面に表示されないのはなぜでしょうか?
CFooApp::InitInstance()で、dlg.DoModal()から帰って来た後で
呼び出してます。
0401初心者
NGNGVC++4.0 時代にMFCを使いこなそうとDocumentとViewクラスを一度に理解しようとして挫折
再度、VC++6.0でMFCプログラミングを始めてここ1日〜2日、Viewクラスへ書いて
テキストボックスやらボタンやらチマチマ書き始めて動いた程度。
今、参考にしているのは「新Visual C++ 6.0入門シニア編」地味?なので少し
色々な事ができないか...と模索中
0402デフォルトの名無しさん
NGNG亡くなってから、もうずいぶん経った。
0403デフォルトの名無しさん
NGNGしたいのですが良い方法はありますか?
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGCString str;
str = "Hello World!"
MessageBox(str);
0407デフォルトの名無しさん
NGNG多分、m_pMainWndが閉じられたら後は終了するだけ、
新しいウィンドウの作成は許可しないとか言うように
MFCのフレームワークが設計されているんじゃないかな?
実装方法はフックでも使ってるんでしょう。
試しにm_pMainWnd = &dlg;をコメントアウトしてみると使えるようになる。
ただしm_pMainWndを指定していない場合、他の場所で不具合が出るだろうと思うが。
0408age
NGNGすみません。昨日から悩んでいます。VC6です。
Inside VisualC++ ver.5のサンプルのようにActiveXのオートメーションを作りました。
(659ページ辺りからのexcelのボタンを押すと反応するやつ)
まったく同じではありませんがVBAでは動きますしデバッグ用のコンテナでも動きます。
ところがVBS(+ASP)だと動いてくれません。
具体的にはCreateObjectはいくけどmethodを呼ぶとエラーになります。
ググってみたのですがサンプルがありません。
とりあえずVBSがうごくだけでいいのでサンプルの場所を教えてください。
0410te
NGNGSDIやMDIのフレームにツールバーやダイアログバーをくっつけたとき、
その縦のサイズが全部でどれだけなのかを知る方法ないでしょうか。
viewの(0,0)をclientToScreenしても、ダイアログバーなどをフレームに
くっつけてると、スクリーンにしたとき、yがそのぶんだけずれている
ようなのです・・・。ヘルプ!
0411te
NGNG最大化しているかどうかなども踏まえてウインドウの位置を
レジストリに記憶させておきたいのですが、
GetWindowPlacementの値をbinaryで書き込んでおき、
起動時にSetする、ではうまくいきませんでした。
いろいろやってみたのですが、復元時に最大化状態にセット
することができませんでした。
やってる場所がわるいのでしょうか・・。
0412デフォルトの名無しさん
NGNGちゃんと書き込めているか、書いた情報がきちんと取り出せているか確認。
0413デフォルトの名無しさん
NGNGOnDestroy()の方がスマートかもしれん。
0414デフォルトの名無しさん
NGNGエクスプローラみたく分割ウインドウをつくっていて
左側のウインドウの右クリックからポップアップメニューを
表示をさせようと思っています。
そこで、CLeftViewにContextMenuを追加したのですが
右クリックではイベントはこなくて、右ダブルクリックで
イベントがくるのですが、なぜでしょうか?
なにか足りないのでしょうか?
0415デフォルトの名無しさん
NGNGどういうコントロールなのか知らないが、複数選択の許可に関する問題で
「ダウン−ドラッグ−アップ」じゃないとイベントが起きない場合がある。
アップのところに置いてみたらどうか?
0416414
NGNGそして説明不足すいません。さらにMFC初心者でごめんなさい。
>「ダウン−ドラッグ−アップ」じゃないとイベントが起きない場合がある。
>アップのところに置いてみたらどうか?
ごめんなさい。「ダウン−ドラッグ−アップ」の意味がわかりません。
アップのところにcontextmenuをおけばいいってことでしょうか?
(アップの意味もわかってないのですが)
いや、ほんと、初心者でごめんなさい。
ちなみに
>どういうコントロールなのか知らないが
っていう質問にはどういう風に回答すればいいのでしょうか?
ツリーコントロール?SDI?
ほんとすいません。
0417デフォルトの名無しさん
NGNG【環境】
・VC++6.0
【症状,状態】
・ClassWizard→メンバ変数で作成したクラスに対してインテリセンス機能が働かない(CEditクラス等)
・自作のクラスメンバに対してはインテリセンス機能が働く
・ビルドする際には問題ない.
【考えられる原因(推測)】
自宅と職場で作業ディレクトリの位置が違う
これなんとかならないでつか?ビルドには問題ないんですが
あれがあるのとないとで便利さが全然違います・・・(つД`)
作業ディレクトリを同じにすればいいんだろうけど
こいつの為にわざわざHDD追加したり,パーティション加えたりするの面倒っす.
0418デフォルトの名無しさん
NGNGクラスウィザードでなんか作り直すと上手くいくかもしれない
0420デフォルトの名無しさん
NGNG悪いがそんなことは、うちのインコでも知ってるよ
0421デフォルトの名無しさん
NGNGインコは知らないと思う
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNG笑うとこなんだから突っ込んじゃダメ
0424デフォルトの名無しさん
NGNG0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNG0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG右上の×ボタンも灰色にすることは可能でしょうか?
SDIなら可能なようですが・・・
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGHDCで描画したいのですが、複数の画像ファイル形式を読込むことが出来る
便利な関数はないでしょうか?(TIFF,PNGは無理そうな気がします。)
0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGCImage
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGImageMagickとか?
tiffだけならlibtiff、pngだけならlibpng+zlibって手もあるが。
0438デフォルトの名無しさん
NGNGCImage
GDI+
OleLoadPicture()
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNGウインドウに組み込むにはどうすればよいのでしょうか?
0441デフォルトの名無しさん
NGNG/support.microsoft.com/default.aspx?scid=kb;ja;179706
0442440
NGNGそこを読んでやってみます。
0443デフォルトの名無しさん
NGNGとりあえず最新のVCを買いなさい。
0444デフォルトの名無しさん
NGNG�潟Aンク
最新 これからはじめるVisual C++
はどう?
IDEの使い方がわからないレベルから始めてるよ。
0445デフォルトの名無しさん
NGNGってことは有償ですか。高いなー。
0446デフォルトの名無しさん
NGNG安っぽい理由で諦められるんなら、そもそもWindowsプログラムなんでするなと。
By ゲイツ
0447デフォルトの名無しさん
NGNGACでシェアってよかったけ?
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNGおまえらの話聞いてると金銭感覚があるようで実は無茶苦茶だな
趣味であろうと仕事であろうと共通してるのは動機が希薄ってことだ
その観点じゃ1円でも高すぎなのを
さも投資予算が決まっていそうな口ぶりで難癖つけるだけのハリボテ野郎が
gccだのborlandだののDLにかかる回線使用料が親の金だったらお笑い草だな
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNGこれをMSへのお布施と思うか、自分への投資と思うかはそれぞれだが。
それを、高価などという理由で「教えてクン」する奴は、やっぱ腹立つもんだと思うよ。
0454デフォルトの名無しさん
NGNG教えてくんてどのレスよ?
0455デフォルトの名無しさん
NGNG特定用途向けツールへの投資としてはちょっと大きいってのはあるだろう
回線は汎用インフラだからな
まあでもその話と「教えてクン」ってのがどうつながるのか全くわからんが・・・
0456デフォルトの名無しさん
NGNG#import についての質問です。
vbscript.dll\3 を指定したい場合はどうしたらよいでしょうか。
#import "C:\WINDOWS\system32\vbscript.dll\3" とすると、
コンパイル時にエラーになる。
#import "C:\WINDOWS\system32\vbscript.dll" とすると、
コンパイルできるが、これは目的のものではない。
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG100モグモグ
0460デフォルトの名無しさん
NGNG何を期待しているのか。
0461デフォルトの名無しさん
NGNGつーか、常識で考えたら分かるだろ。
なんでVCを他人とシェアして許されると思うのかが不思議だ。
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGまぁ、やめとけ、といいたい。
つーか、学校の端末を使って作ったら問題ありだろうしね。
0464デフォルトの名無しさん
NGNGどのようにすればよいのでしょうか?
よろしくお願いいたします.
0465デフォルトの名無しさん
NGNGまず、googleへ行って"DIBの表示"でぐぐる。
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNGサンプル等在りませんでしょうか?
0469デフォルトの名無しさん
NGNG画像のサンプル?
0471デフォルトの名無しさん
NGNG>>468の書きぶりから全く外れてるんだが・・・
やりたいことと手段の方向性が見えてないような気がする
そのレベルだったら初心者向けのソースコード付きの解説本でも一冊最初にやったら?
0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG俺もそう思う。しかもピクチャボックスがそれをサポートするコントロールだと勘違いしてるような気も・・・
0476デフォルトの名無しさん
NGNGどうしたいんだろ?
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG例:strstr("abcdefg.WaV", ".wav") != NULL
が true となるような関数が欲しい
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG0481sh
NGNG方法はどうするのでしょう?
AfxGetMainWnd())->m_wndSplitSub.GetPane() ですか?
0482sh
NGNGAppクラスにCWnd のメンバを作ってペインのOnInitUpdate() に
thisポインタを入れて、
他のペインからそのメンバのCWndを参照すればアクセスできました。
みなさんはどうやってるのでしょうか。
0483デフォルトの名無しさん
NGNGそこに定義しておいた子ペインにアクセスするメソッドを呼び出す。
まあ、操る人が一番迷わない方法でいいんじゃないの。
既に解決してるみたいだし。
0484sh
NGNGいろいろな方法があるみたいで、それはそれでおもしろいですね。
0485デフォルトの名無しさん
NGNG追加したいのですが。どうやればよろしいんでしょうか?
0486デフォルトの名無しさん
NGNGCMenu
AppendMenu()
InsertMenu()
0487デフォルトの名無しさん
NGNG林晴彦みたいな、ぬるいのは嫌です。
0488デフォルトの名無しさん
NGNGいい書籍っていってもあなたの基準が明確でないと返答に詰まる。
ヒントはぬるいのはだめってことだけらしいけど、もう少しどんな感じの
ものが欲しいのか明らかにしたほうがレスがつきやすいと思う。
0489487
NGNG新しい仕事でMFCを使用しているんです。
主に、ダイアログベースで細かいデータ表示などをやるプログラムを量産しています。
ダイアログベースと言うのは、間違っていると思うんですが、
そこの会社が昔からこのやり方なので方法を変えたくないらしいです。
CListCtrlを継承させてセル単位で背景色を設定や入力できる物や
コントロール2つ以上を同期で選択とか、ダイアログなのにスプリットバーや
その他いろいろ
基本的に、クラスをそのまま使うことがないんです。
あと、私がWindowsプログラミングにあんまりなれてなくて
細かいメッセージの流れとかがよくわかってない時もあったり
単純なウインドウならわかるけど、ListViewとかのコントロールのメッセージや
MFC独自の物とかのメッセージが、いまいち。
時間をかけて調べればわかることなんですが、
そういうことを書いてある本が欲しかったり
C++のテンプレートなどは理解できています。
ジェネリックプログラミングも多少わかります。Boostもいろいろ使ったり出来ます。
WTLに興味があるんですが、会社で使えるのかわからないので
現在深くやる予定はありませんが、多少知っておきたい。
まあ、結構深く突っ込んだり、コアなTips系とか
いろいろ書いてある本が欲しいです。
現在飼おうと思ってる本は、
http://www.ascii.co.jp/books/detail/4-7561/4-7561-3143-3.html
です。
この本っていい?
0490デフォルトの名無しさん
NGNGWEB上で検索かけてサンプルコードを拾ったりしてる。
そのほうがすぐ使えるし。
0491デフォルトの名無しさん
NGNG0492487
NGNG仕事場が、すぐにネットにつなげれる環境じゃないんです。
あと、通勤時間が結構あるし
本も欲しいかなと。
なんかないのー
買っちゃうおー
0493デフォルトの名無しさん
NGNG>仕事場が、すぐにネットにつなげれる環境じゃないんです。
先ず、その環境を何とかせにゃならんと思う。
まさか、会社でダイアルアップでもないでしょ?
0494デフォルトの名無しさん
NGNGちゃんとした情報を得るには書籍やMSDNが一番だけど、ヒントやサンプルはまずGoogleって感じ。
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG使わない手は無い。というか、使えないのは明らかに損!
0497433
NGNGありがとん。返事が遅くなってスマソ。
GDI+で問題解決しました。
ttp://www.kumei.ne.jp/c_lang/sdk4/sdk_336.htm
0498デフォルトの名無しさん
NGNGそのExcelから既存のExcelファイルを開くにはどうすれば良いのでしょうか?
また、その時マクロを実行するにはどうすれば良いのでしょうか?
0499デフォルトの名無しさん
NGNGSetSelectionMark(-1)
ってのありでしょうか?
0500デフォルトの名無しさん
NGNGん?それで何が問題なんだ?
0501sh
NGNGアドミンだけ書込みを許可するなどです。
0502デフォルトの名無しさん
NGNGレジストリのこの位置に登録すると自動起動しますが、
MFC6.0 で登録するにはどうやるのでしょうか。
H_KEY_CURENT_USER 以外には書き込めないとか..?
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGMFCでなぜ?
RegOpenKeyEx
RegQueryValueEx
RegSetValueEx
RegCloseKey
0505デフォルトの名無しさん
NGNGAtlSetDacl()とか調べて頑張れ
0506デフォルトの名無しさん
NGNGとやると
error C2668: 'AppendMenuA' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照)
とエラーが出てしまいます。対処法を教えてください
0507デフォルトの名無しさん
NGNGhttp://www.google.com/search?hl=ja&lr=lang_ja&ie=SJIS&q=%83I%81%5b%83o%81%5b%83%8d%81%5b%83h
0508506
NGNGありえないけどCMenuを書き換えるか、
CMenuを継承したクラスに書き換えてメンバーも修正?
それ以前になんでAppendMenu関数が実装されてないの?
AppendMenu関数作るとしたらどんな風に書けば良いのですか?
ということです。
SDKなら何とかなりそうですが、MFCは変更がしづらくて分かりいにくいです。
0509デフォルトの名無しさん
NGNG関数の仕様から調べなおしたほうがいいでそ。
0510デフォルトの名無しさん
NGNG馬鹿だねぇ。オーバーロードをちゃんと理解してれば
コンパイラがオーバーロードを解決できない場合がどんな場合か
わかるだろ。
0511デフォルトの名無しさん
NGNG書き換えとか言う前に、MSDN見れ。
0512デフォルトの名無しさん
NGNG今までは全部手打ちでVSの機能はビルドとデバッグぐらいにしか使っていなかったのですが
MFCやるのだし、と思って色々やってみました。
そこで、ちょっと嫌だなとおもったのが(MFCの話じゃないですが)
メンバ変数の追加、やメンバ関数の追加でコードをジェネレートして追加すると
ヘッダファイルがえれー汚くなります。
これってもう自分で書き直す(コピペで)以外に解決策ってないんでしょうか。
0513デフォルトの名無しさん
NGNG自分で治せる余地が提供されてるんだから、それでいいと思うんだが。
0514デフォルトの名無しさん
NGNG自分で書き直すのが最善策だと思います。
0515デフォルトの名無しさん
NGNG0516デフォルトの名無しさん
NGNG「メンバ変数の追加」は俺も使わない
インデントもへったくれもない行儀の悪さに加え
極めつけはテンプレートインスタンス型をサポートしていない点
「メンバ関数の追加」にも不満はあるものの
ヘッダとソースの連動修正をやってくれるので
まあ使ってやることもあるが
0517デフォルトの名無しさん
NGNGfor文で、
for(int i = 0; i < x; i++)
みたいに書くと、標準C++では、変数iはfor文ブロック内が
スコープなはずですが、.netだとそうじゃないんですよね。
これってコンパイラで切り替えることってできるのでしょうか?
0518デフォルトの名無しさん
NGNGできます。以上。
0519デフォルトの名無しさん
NGNGどうやるの?以上
0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNGそうじゃないのはどういうことかの説明が不足している。いじょ。
0522デフォルトの名無しさん
NGNGそんなことはない。以上。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNGまともに答える義理は微塵も無い。以上。
0528デフォルトの名無しさん
NGNG必ずしも高飛車でなくたって低姿勢な香具師にも答える義務がない点に違いはないんだが
0529525
NGNG0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG「これはいい!」って参考書ありませんか?
本屋さんにはたくさんの参考書が置いてあり
どれがいいのかとても選ぶことはできません。
どなたかおすすめな本を教えてください。
0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGどうやって調べりゃいいの?いじょ
0537デフォルトの名無しさん
NGNG自分で調べ方を調べろ。以上。
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG参考書っていっても、一冊や二冊で済むもんじゃないからな。
色々買って金を無駄遣いして、数冊に一冊くらいの割合で自分にとっての良本見つけるって感じだし。
何なら、「Cを覚えるまでにいくら消費しましたか?」って聞いてみ。
きっと、すごい額出てくる思うよ。
0540デフォルトの名無しさん
NGNG悪い、漏れ入門書の類が嫌いなもんで、K&Rとリファレンス本以外は
殆ど金使ってないんだよね。
05414ce ◆WVdtysP8L2
NGNG0542デフォルトの名無しさん
NGNGよくわかりませんが誘導しておきますね
シューティングゲーム製作技術総合 2機目
http://pc5.2ch.net/test/read.cgi/gamedev/1073736474/
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNGありがとう。関数名が分かったので検索しまくったら そのままの
ソースがありました。
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG名前 サイズ 種類 更新日時......
みたいな、押すとソートをかけてくれたり、それぞれの表示領域をかえれたりするのは
いったいどのように実現するのでしょうか?
なにか、それ専用のコントロールがあるのでしょうか・・・
0547デフォルトの名無しさん
NGNGCListCtrl
但し、ソートは自前で用意する必要がある。
0548デフォルトの名無しさん
NGNGMFCで書いたやつが、結構、コンパイルとおらないんですけど...
0549デフォルトの名無しさん
NGNG無理^^;;;;;;;;;;;;;
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG漏れも、VC6しか知らないんだけど、何が変わったの?
どうせ、MFCはいつものウィザードなんでしょ?
0553デフォルトの名無しさん
NGNGCWndのどのメッセージハンドラで呼び出せばよいのでしょうか?
コンストラクタで呼び出すとウインドウができていないのかエラーがでてしまいます。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGOnInitialUpdateを編集したのですが、
スクロールできないんです。
0558デフォルトの名無しさん
NGNGWM_SCROLL捕まえて自分でスクロール実装する
0559デフォルトの名無しさん
NGNGお手軽にダイアログにコントロールをぺたぺた貼って
みたいなのなら CFormView というのがあることはある。
0560デフォルトの名無しさん
NGNGスクロールバーを引っ張っても
元に戻るんですが。
0561デフォルトの名無しさん
NGNG/:::::::::::::::::::/:::::::::::::::::::::::::::/:::::::/:/::::::::::::ミヽ
/::::::::::::::::/:::::::::::::::::::::::::::::/::::::::::/::::/:::::::::/:/:ハr'ヽ
/::::::::::::::::/:::::::::::::::::::::::::::::::/::::::::::/::::/::::::/:/:::レ::イ::T:l
/::::::::::::::::::::::::::::::::::::::::::::::::::::::::::;ィ:::|:::::ハ::::::|::|::/|::::::|:::::::|
/::::::::::::::::::::::::::::::::::::::::__::::::::::::::://|::ト、::L|::::|!:||:!/::::/::::|::!
|:::::::::::::::::::::::::::::::::::::r'rヘヽ::::彡 |:! v!|--,.、`゙//:::::/リ
|:::::::::::::/::::::::::/:::::::{ (⌒ |:r'´ ` 、l:/ ///l:/〃
/:::::::::::/::::::::::/::::::::;ハヽ. |:! |'´ '′
/::::::::::/:::::::::::/:::::::/:::::::L° ゙、
/::::::::/:::::::/:::/::::::/::::::::::| l _ ヽ
/::::::::/:::::::/:::/::::::/::::::::::::| l ____r'´ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/:::::/:::::::/::::::::::::/::::::::::::::| `7′ < よくわからないモノを
/::::::/::::::::::/:::::::::::::/ :::::::::::/ / | 無理して使うからよ
/:::::/::::/::::/::::::::::::::/ :::::::::::/二`ヽ、 `iヽ 、____/ \_________
/:::::::::/:::/::::::::/::::::::::::彡.:::::::::::/三ミヽ、 ``=ヽ
|:::::::::|::/::::::::::::/:::::::/:::/彡:::::∧`ヽ、 \三ミr'ヽ、
|:::::::::|/:::::::::::::|!::::::::::::::/イ/::::/::::::ヽ \ \/ ̄`ヽ\
|:::::::/::::::/::/::リ::::::::::::/:::/:::::/::::::::ノ /\ \\ \\
0562デフォルトの名無しさん
NGNG少しはヘルプ嫁
0563デフォルトの名無しさん
NGNG仮に>>558へのレスなら自分で実装するということが理解できないのか。
それともどこか別の星と交信してるのか。
0564553
NGNG0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG0567553
NGNGやってることがActiveXコントロールのラップクラスがCWndクラスから派生してるので、
CWndの基本クラスとしたクラスを作って、そのCWndをそのラップクラスにあるクラスに
置き換えるということをやってるので普通じゃないんですが、自分でいい方法探すしかないか。
分かる人がいればアドバイスよろしくお願いします。
0568デフォルトの名無しさん
NGNG0569553
NGNG0570デフォルトの名無しさん
NGNGスクロールの位置はとれているんですか?
0571デフォルトの名無しさん
NGNGそれか値をScrollToPositionに入れるのではだめかなぁ
0572デフォルトの名無しさん
NGNGスクロール関連は553じゃ無いと思う
0573デフォルトの名無しさん
NGNGお手軽にダイアログにコントロールをぺたぺた貼った
画面がいっぱいほしい。
コードのアリカを教えてください。
(現役:悪セス房)
いちいちスクロール書いてられるか。
ついでに教えてくれ、べたべた張るやつの制限は
全部で255までか、それとも
ボタン255とエデット255とラジオ255でもOK牧場
0574デフォルトの名無しさん
NGNG( ゚д゚) ・・・・・
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGコードのアリカを教えてください。
高度ぐるやM$はCVIEW(SDI,MDI、分割)ばかり。
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGCreateWindowEX()
0582デフォルトの名無しさん
NGNG文字コードを変換して表示するには、どのようにすればいいんでしょうか?
0583デフォルトの名無しさん
NGNGそういう質問ができる時点で、答えはもう出てるでしょうに。
UTF8からS-JISに変換するプログラムを作ればいい。アルゴリズムはGoogleで検索すれ。
0585デフォルトの名無しさん
NGNGhttp://tricklib.com/cxx/ex/babel/
これでいいかな。
0586デフォルトの名無しさん
NGNG対して、WideCharToMultiByteでCP_932でもしとけばええやん。
0588デフォルトの名無しさん
NGNG使用してFTPでファイルアップロードをする
プログラムを作っているのですが、
アップロードボタン3回までは正常に
動作するのですが、4回目から接続に
失敗してしまいます。
このような状況をご存知の方おられましたら、
解決法を教えてもらえないでしょうか?
0589588
NGNGhInternet = InternetOpen("upload",
INTERNET_OPEN_TYPE_DIRECT,
NULL,NULL,0);
if(hInternet == NULL){
InternetCloseHandle(hInternet);
MessageBox("ネットワーク接続に失敗");
goto end;
}
hHost = InternetConnect(hInternet,distip,
INTERNET_DEFAULT_FTP_PORT,
dlg.m_uid,dlg.m_passwd,
INTERNET_SERVICE_FTP,
INTERNET_FLAG_PASSIVE,0);
if(hHost == NULL){
InternetCloseHandle(hHost);
InternetCloseHandle(hInternet);
MessageBox("接続に失敗しました。\n");
goto end;
}
if(!FtpPutFile(hHost,uppath, upfile, FTP_TRANSFER_TYPE_BINARY,0)){
InternetCloseHandle(hHost);
InternetCloseHandle(hInternet);
MessageBox("アップロードに失敗しました。\n");
goto end;
}
InternetCloseHandle(hHost);
InternetCloseHandle(hInternet);
0590588
NGNGFTPアクセスの後、Socket通信をしていたのですが、
WSAStartupを呼んだ直後にWSACleanupをしていました。
WSACleanupを通信終了時でだけ実行するようにしたら、
現象が起こらなくなりました。
スレよごしスマソ
0591デフォルトの名無しさん
NGNGCWhd::MessageBoxのボタン(ハイ、キャンセル等)を任意のメッセージに
変更したいんですけど一番スマートな方法を教えてください
今は、
1.MessageBoxを呼び出す前にフラグを立てる
2.MessageBoxを呼び出す
3.WM_ACTIVATEをハンドリングして、フラグが立っていた場合MessageBoxの
ウインドウハンドルからボタンのウインドウハンドルを取得
4.ボタンのウインドウテキストを変更
という、良いんだか悪いんだか分からない方法で変更してます
もっとスマートなやり方を知っている方いらっしゃいましたら教えてください
0592デフォルトの名無しさん
NGNG自作MessageBox作れば?
0593デフォルトの名無しさん
NGNG俺もそう思う。
0594デフォルトの名無しさん
NGNGMessageBoxっていうのは出来合いのダイアログとして雛形で用意された
パターンを選択して使うもの。ボタンの数とかパターンはいくつかあって
変えられるが、あくまで用意されているものを使う。それでwindows標準形式
に沿うものができるわけだ。
ボタンのメッセージからオリジナルのものに変えたいなら、そういうダイアログ
を自分でクラス化して作る。
0595デフォルトの名無しさん
NGNG以下のようなコードを記述した場合、DrawLine関数の内部でも古いペンに
戻してやることは必要ですか?
DrawLineを抜けた時点でスタック上のpenは消滅するので、SelectObjectされた
デバイスコンテキストの状態が気になっています。
この例ではDrawLine()の後すぐに古いペンに戻していますが、Draw関数内の
コメントアウトされた行を実行した場合はどうなるのでしょうか?
void Draw(CDC *pDC){
CPen *pOldPen = pDC->GetCurrentPen();
DrawLine(pDC);
// pDC->LineTo(100, 0);
pDC->SelectObject(pOldPen);
}
void DrawLine(CDC *pDC){
CPen pen(PS_SOLID, 1, RGB(255,0,0));
pDC->SelectObejct(&pen);
pDC->MoveTo(0, 0);
pDC->LineTo(100,100);
}
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGCSplitterWndの上にCTreeCtrlとCListCtrlを作成しまして
リストにアイテムを追加しようするとNULLが返ってきます。
CtreeView/CListView/CDocumentを使わずに
同じ動作をさせるにはどうすればよいのでしょうか?
0598デフォルトの名無しさん
NGNG頑張れ
0599デフォルトの名無しさん
NGNG最近Windows用のアプリに興味が出てきたのでVC++にチャレンジしてみたいと思っているのですが、
初心者に分かりやすく解説してあるオススメのサイトはありませんか?
やはり本屋で一冊買ってきた方が早いのでしょうか。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG猫
0603デフォルトの名無しさん
NGNGうん。
0604デフォルトの名無しさん
NGNGCViewのソースをよーく見てみるべし
0605595
NGNG私がやりたかったのは、抽象化されたボタンクラスを作成して、派生したクラスでGDIオブジェクトの
置き換えに気を使わないでも良い作りにしたかったのです。
virtual void DrawInnerFrame(CDC *pDC) = 0;
virtual void DrawOutsideFrame(CDC *pDC) =0;
virtual void DrawContents(CDC *pDC) = 0;
void Draw(CDC *pCD) {
// 実際にはペン以外にも使用されるGDIオブジェクトを取っておく
CPen *pOldPen = pDC->GetCurrentPen();
// 描画は派生するクラスによって異なる
DrawOutsideFrame(pDC);
DrawInnerFrame(pDC);
DrawContents(pDC);
pDC->SelectObject(pOldPen);
}
このようなコードの場合は各仮想関数の実装で選択を戻す必要は無いかもしれませんが、
万が一があるかもしれないのでキチンと選択しなおすことにしました。
(使用するのが私だけとは限らないので)
失礼しました。
0606デフォルトの名無しさん
NGNG>このようなコードの場合は各仮想関数の実装で選択を戻す必要は無いかもしれませんが、
SelectObjectされたGDIオブジェクトを破棄するのはダメだった希ガス
0607606
NGNG>Do not delete a drawing object (pen or brush) while it is still selected into a device context.
0608595
NGNG>SelectObjectされたGDIオブジェクトを破棄するのはダメ
そうなんですが、追ってテストしてみたところ
void Draw(CDC *pDC)
{
CPen pen(PS_SOLID, 10, RGB(22, 18, 86));
pDC->SelectObject( &pen );
pDC->MoveTo(0, 0);
pDC->LineTo(100, 100);
CPen *pPen2 = pDC->GetCurrentPen();
}
void CViewTestView::OnDraw(CDC* pDC)
{
CPen *pPen1 = pDC->GetCurrentPen();
Draw( pDC );
pDC->LineTo(100, 0);
CPen *pPen3 = pDC->GetCurrentPen();
VERIFY( ::DeleteObject( pPen3->m_hObject ) );
VERIFY( ::DeleteObject( pPen3->m_hObject ) );
VERIFY( ::DeleteObject( pPen3->m_hObject ) );
VERIFY( pPen3->DeleteObject() );
}
このようなコードが平然と動いて、もうワケワカメな状態です。
ちなみに
pPen1->m_hObject != pPen2->m_hObject
pPen2->m_hObject == pPen3->m_hObject
でした。
0609デフォルトの名無しさん
NGNGプログラマが注意してSelectObjectする必要がある。
あと、SelectObjectじゃないけど、第三者提供の描画関数呼び出したら
マッピングモードやら目茶苦茶にされたまま戻ってきてワヤになった
経験があるんで、それ以来 SaveDC/RestoreDCも愛用している。
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNGPlatform SDK: Windows 9x Programming
Windows 95/98/Me Graphics Device Interface
There are platform differences in the way drawing objects are deleted.
In Windows NT/Windows 2000, if a drawing object (pen or brush) is deleted
while it is still selected into a DC, the DeleteObject function fails.
In Windows 95/98/Me, the function succeeds,
but the result is a nonfunctioning object.
This nonfunctioning object is automatically destroyed when the DC is deleted.
0612595
NGNG>608のコードでデバッグしてもエラーにはなりませんでした。
残念ながら95/98/Meで確認できなかったのでこれ以上の追求は出来ませんでした。
>611さんに報告していただいた内容とは異なりますが、OSによって挙動が違う
ようですのでSelectObjectは怠けずに行うことにします。
皆様、ありがとうございました。
0613デフォルトの名無しさん
NGNG怠け者にはSaveDC()とRestoreDC()がお勧め
0614デフォルトの名無しさん
NGNGSelectObjectでの戻しだけは必須。
0615デフォルトの名無しさん
NGNGMSDNライブラリには、SaveDCは選択されているオブジェクトの状態を保存すると書いてあるが?
0616デフォルトの名無しさん
NGNGみなさんはC++をどれくらいの期間で習得しましたか?
一日どれくらい時間勉強しましたか?
さらに、何歳から勉強しようと思いましたか?
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG最後は本人のやる気次第じゃないかな。
0619デフォルトの名無しさん
NGNGCMDIChildWndを継承したウインドウのOnPreCreate()で、
CMenu m;
m.LoadMenu(IDR_MYAPP);
this->SetMenu(&m);
m.Detch();
とやると落ちます。
デバッグして追ってみると、SetMenuでハングしています。
どうすればよいのでしょうか。
0620デフォルトの名無しさん
NGNG子ウィンドウにメニューは付けられないはず。
0621デフォルトの名無しさん
NGNG高橋の過去ログで検索すれば出てくる
0622デフォルトの名無しさん
NGNG線の色を、描画するビットマップの色の反転したものにするにはどうしたらいいでしょうか?
0623デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/menus/aboutmenus.asp
>Only an overlapped or pop-up window can contain a menu bar; a child window cannot contain one.
0624デフォルトの名無しさん
NGNGどのようにしたらよいのでしょうか?
ジョイパッドのボタンが押された時に
とんでいくメッセージは何になるんでしょうか?
0625デフォルトの名無しさん
NGNGメッセージもあったはず。
mmsystem.hを読むとよろし。mmlib32.libのリンク忘れないように
0627デフォルトの名無しさん
NGNGJoystickのメッセージは
MM_JOY1BUTTONDOWN
MM_JOY1BUTTONUP
MM_JOY2BUTTONDOWN|
MM_JOY2BUTTONUP
のようだったので
WH_CALLWNDPROCのフックプロシージャを作って
そこで(CWPSTRUCT *)lParam->message が
上記の値なら処理するようにしたのですが
接続してるゲームパッドを叩いてみても無反応でした(´;ω;`)ウッ…
0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNGちゃんと接続されてるか確認しような。
0630デフォルトの名無しさん
NGNG俺もだ。歳のせいかな。
0631デフォルトの名無しさん
NGNGどうすればいいでしょうか?
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNGもう少し詳しく教えていただけないでしょうか?
0634デフォルトの名無しさん
NGNG「オートコンプリート」って機能実現のために出来合いの関数群が用意されてる?
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNG「ヒストリ」とは?
「エディットコンボボックス」ってあったっけ?
0637デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNGならないよ・・・。短文レスにするならちゃんとしたライブラリ用語とか使えよ。
じゃなかったらやり方をきちんと説明汁。
0643デフォルトの名無しさん
NGNGIAutoComplete をキーワードにヘルプ見たら一発だろうが。
0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNGそれは訳分からんな。
「CBS_DROPDOWN」で説明すべきだな。
0646デフォルトの名無しさん
NGNG普通に考えて>>635だろよ
0647デフォルトの名無しさん
NGNG...
0648デフォルトの名無しさん
NGNGVC6.0sp6で、以下のように宣言するとC2059エラーが出ます。
どこか間違っていますでしょうか?
template<class T>
class B
{
};
class A{
template<class T>
friend class B;
}
0649デフォルトの名無しさん
NGNGttp://www.tietew.jp/cppll/archive/414
0651デフォルトの名無しさん
NGNG二つ起動させておいてお互いを監視しあって停止させられたら起動かける
方法にしましたが、タスクマネージャから「プロセス ツリーの終了」で
綺麗さっぱり なくなってしまいました。
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNGサービスという方法もありますが難解ですし時間もないので困ってます。
プロセス ツリーの終了 と プロセスの終了 はどう違うのでしょうね。
子プロセスも停止させるのかな。
(ちなみに社内用でデータの持ち出しを防ぐためのツールを作っています)
0654デフォルトの名無しさん
NGNG停止させられないワームとかウイルスをコードのコピペでお手軽に作られると嫌でしょ。
ユーザの権限ではUSBとかFDDとかのデバイスを使用不可にしとけば?
0655デフォルトの名無しさん
NGNGそういうのは物理的に持ち出せないようにしないとまずいと思う。
例えば外付けドライブからCDブートのLinux等を
起動させられたりするとどうしようもない。
0656デフォルトの名無しさん
NGNG最低限のハードウェアしか積んでおらず、外部のネットワークと
接続されていない専用端末を用意すればよろしいかと。
0657デフォルトの名無しさん
NGNG{
int a;
a=textBox1->Text->ToInt32;
}
4行目を↓のようにしてもうまくいかず・・・どうやれば上手くいくのでしょうか?
a=atoi((char)textBox1->Text);
これこのスレで質問してもいいのですか?
C/C++スレで聞いたらスレ違いらしかったので
0658デフォルトの名無しさん
NGNGそのtextBox1とやらがどんなものなのかわからんから何とも言えんが
キャストするなら( char* )にしないと。まあ元のデータが
char型のポインタじゃ無ければ駄目だけど。
0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNGerror C2440 'System::String __gc*'から'char*'に変換できません。
と出ました。CString変数使わずにダイレクトでintにする方法は無いのでしょうか?
0661デフォルトの名無しさん
NGNGerror C2446 'atoi': 一番目の引数を'System::String __gc*'から'const char*'に変換できません。
となります色々試しているのですがヒント程度でも何でもいいのでお願いします。
0662正解大魔王
NGNGint b=atoi((LPCTSTR)str);
0663デフォルトの名無しさん
NGNGそれはヒントなのでしょうか?
a=atoi((LPCTSTR)textBox1->Text);
とするもエラー4つ
これは LPCTSTR型 にキャストすれば atoi で変換できるということなんでしょうか?
0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNGstrtoulとかもあるぞ
0666デフォルトの名無しさん
NGNG.NET Visual C++プロジェクト Formアプリケーションから作ってますがその辺と関係があるのでしょうか?
CString 宣言すると定義されてない識別子と出るので何かおかしい・・・
0667デフォルトの名無しさん
NGNGerror 2065/2378 LPCTSTRが定義されてません/識別子がtypedefとして再定義
エラーが2つ
0668デフォルトの名無しさん
NGNG今から調べて使ってみます
0669デフォルトの名無しさん
NGNGa=strtol(textBox1->Text,NULL,10);
のように使えばいいのでしょうか?
これだと >>661 同様のエラーが出ました
やはり型のところで何か問題があるようです
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNGint i=strtoul(str,&stop,10);//<<--こうする
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNGprivate: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
int a;
char *stop;
a=strtol(textBox1->Text,&stop,10);
}
error C2664 一番目の引数を'System::String __gc*'から'const char*'に変換できません。
でした。因みに char *stop は宣言だけ使用してるので中身は NULL ということなんでしょうか?
何れしても問題は一番目の引数のようです。
0674デフォルトの名無しさん
NGNGmanagedについて調べてみました
MS VisualStudio .NET 2003 での Visual C++
は所謂従来の Visual C++ とはかなり違うもののような雰囲気のようですね
managed C++ という表現があるようですが、それが今自分のやろうとしてるものなんでしょうか?
0675デフォルトの名無しさん
NGNGポインタじゃなければ(LPCTSTR)でキャストして
atoiに放り込める。
0676デフォルトの名無しさん
NGNG>>664 で教えられて >>667 のような結果なのですが、これとは違うのでしょうか?
0677デフォルトの名無しさん
NGNG0678デフォルトの名無しさん
NGNGすいません。
徐々に自分がスレ違いのような気がしてきました。
managed C++ やろうぜ!!
http://pc5.2ch.net/test/read.cgi/tech/1014486422/
こっちのスレに移動します。
お力になって頂けるのであればお願いします。
0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG上 下 左 右 はうごくのですが
斜めにうがしたいのですが
どうすればいいでしょうか?
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNGGetKeyboardStateでいけますか?
0684デフォルトの名無しさん
NGNGコードが悪い気が。
ただ、ハードウェア制限により、
キーの同時取得が出来ない組み合わせもあるけど。
0685デフォルトの名無しさん
NGNG設定して終了する場合はExitInstanceをオーバーライドして
int Cほにゃらら::ExitInstance(){
return( 123 );
// return CWinApp::ExitInstance(); // ←元々あったコード
}
のようにすると思うのですが、この場合に元々呼び出していた
CWinApp::ExitInstance()の呼び出しを行う必要はあるのでしょうか?
0686デフォルトの名無しさん
NGNG0687デフォルトの名無しさん
NGNGCWinApp::ExitInstance()のソースを読めば分かるんだけど、アプリ内で設定されたMRUなどを
保存しているので、無いと色々と不都合が出てきそう。
int Cほにゃらら::ExitInstance(){
CWinApp::ExitInstance(); // ←元々あったコード
return( 123 );
}
どうせなら、こうした方が無難カモ。
0688685
NGNG他社からメンテナンスで引き継いだソースだと、元々のExitInstanceが
コメントアウトされたままの物があったのでどうなのかと思いまして。
しかし、このアプリ既に全国展開で何年も動いているんだよな。ガクブル
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG(初期化していない変数に平気でアクセスしている)
そのままVC6に持っていったら、案の定まともに動きませんでした。
しょーがないので、そのままVC5で保守しています。
動いているので触りません。
0692デフォルトの名無しさん
NGNG手遅れだな
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGすみませんが、教えてください。
入力画面1>入力画面2>入力画面3>結果画面
といったような画面がどんどん遷移していくアプリを作成したいのですが
これを実現するにあたって標準的な方法はどういったものなのでしょうか?
(画面遷移は一方通行です。結果画面のあと入力画面に戻ります。)
1.SDIで作って画面ごとにコントロールの表示/非表示を切り替える。
2.画面ごとにダイアログを作成し順番に表示する。
3.MDIで作って画面ごとに子ウィンドウを作成する。
4.その他
よろしくお願いします。
0695デフォルトの名無しさん
NGNGダイアログが一番簡単でユーザーにも分りやすいでしょう。
下手にSDIとかMDIで画面を切替えたりすると、どれがメイン画面か
分りにくくなるし。感じとしてはAppWizardみたいなものになるんだと
思います。
0696デフォルトの名無しさん
NGNGMFCだと、CPropertySheetでSetWizardModeするのがやりやすいかね。
この場合、ステップ毎にCPropertyPage(ほぼダイアログ感覚)を作っていく。
0697デフォルトの名無しさん
NGNGSetTimerの第4引数でメンバ関数のアドレスを渡しても呼び出してくれませんでした。
0698デフォルトの名無しさん
NGNGどこから SetTimer 呼び出してる?
なせ、CWnd::SetTimer を使わない?
0699697
NGNGvoid CALLBACK EXPORT CXXXView::TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime){}
としたのですが無理でした
APIでもCWnd::でも同じようです
エラーは下のようになりました
'SetTimer' : 3 番目の引数を 'void (struct HWND__ *,unsigned int,unsigned int,unsigned long)' から
'void (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,unsigned long)' に変換できません。
スコープ内でこの名前を持つ関数でターゲット型に一致するものはありません。
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG呼び出してはくれんだろ。
0702デフォルトの名無しさん
NGNGサンプルソースの中に、
CUdpThread ->m_pThreadParams = NULL;
class CUdpThread : public CWinThread
{・・・・・・・・};
という、部分があり、何のために書かれているのか解かりません。
m_pThreadParamsでMSDN・GOOGLEとうで検索してみたのですが
MSDNにいたっては、データ メンバ にすらのっていませんでした・・・。
m_pThreadParams は何の設定を行うものなのでしょうか?
0703702
NGNGhttp://www.cppdoc.com/example/mfc/classdoc/MFC/CWinThread.html
海外のページには、のっていたのですが、目的がかかれていませんでした。
0704デフォルトの名無しさん
NGNGスレッド起動時のパラメータ、AfxBeginThread の第2引数が入る。
0705デフォルトの名無しさん
NGNG実行中だというのを示すために、
アニメーションを表示させようと思ってます。
で、たまにみるプログレスバーみたいなのは
自作したものなのでしょうか。
左から右にプログレスバーのブロックが
繰り返し流れていくやつです。
---------------------------------
|→→→→→→■■■■■→→→→→|
---------------------------------
XPのエクスプローラで検索するとでてくるのに似てます。
(検索コンパニオンをOFFにしてるとでないかもしれません)
0706デフォルトの名無しさん
NGNGコンボボックスをオーナー描画にすると、なぜか高さが大きくなってしまうのですが
これを通常時(オーナー描画しないときと同じ)高さにする方法はないですか
VC6sp6
Windows2000
0707デフォルトの名無しさん
NGNG0708706
NGNGお騒がせしました
0709702
NGNGありがとうございました
0710デフォルトの名無しさん
NGNGカーソルがウィンドウ外に出た時にメッセージが欲しいのですが
そういうウィンドウメッセージはありますか?
0711710
NGNGReleaseCapture()
で自己解決しました。
0712デフォルトの名無しさん
NGNGエクスプローラと同じように、フォルダを一覧するツリーを作成しています。
表示は出来るようになったのですが、動的な更新に対応したい.と思って困っています。
つまりエクスプローラなどで、フォルダを作成したり、削除した.りしたときに、その変更を検知して、自分のツリーも更新を.かけたいのですが、その変更をどうやって検知すればよいか.がわからなくて困っています。
エクスプローラからブロードキャストされるようなメッセージが.あるのでしょうか?
よろしくお願いいたします。
0713デフォルトの名無しさん
NGNG厨房、いや、新人必死だな
0714デフォルトの名無しさん
NGNG初心者板で解決いたしました。お世話がセ氏真下。
0715デフォルトの名無しさん
NGNGアプリケーションでよく見るファイルの参照ボタンって、
どうやって作るの?
どっかのコントロールにあるんですかね?
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG起動時に最大化させようと思っているんですが,
うまくいきません.
起動後に「最大化ボタン」を押すと最大化
できるんですが...
0719デフォルトの名無しさん
NGNGとりあえずWin32APIをある程度理解してからとりかかったほうがいいよ。
わけもわからずスケルトン生成
→なんかソースがたくさんできる
→どこ変えたらいいかわからない
みたいな質問ばかりだけど。
0720デフォルトの名無しさん
NGNGSTARTUPINFO::wShowWindowあたり調べたか?
0721718
NGNGcs.style |= (WS_MAXMIZE | WS_VISIBLE);
としてもダメだったので,WM_CREATEのメッセージハンドラを作成して
以下のようにしました.
int CXXDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)内で
ShowWindow(SW_SHOWMAXIMIZED);
これで最大化されるようになりましたが,これでいいんでしょうか?
最初の方法でもいいような気が... あっ720さん どうも
0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNG0724718
NGNGPreCreateWindow内でShowWindowをよんでも最大化しませんでした.
>>723さん
InitInstance内での使用方法が分かりませんでした(すいません)
色々やってみると,
BOOL CXXDlg::OnInitDialog()内で,
ShowWindow(SW_SHOWMAXIMIZED);
でもOKでした.こっちの方がいいのかな
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNGMFCでボタンを作って、それを押すことで何かの処理をするってときに
計算に時間がかかるような処理だったりすると、ほかのボタンを受け付けなくなります。
ボタンを押すことによって計算を一時中断したいけど、皆さんはこういうのはどうやってるんですか?
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNG自己解決って、どうやったの?
0729デフォルトの名無しさん
NGNG>PreCreateWindow内でShowWindowをよんでも最大化しませんでした.
そりゃ無理じゃん Pre だぜ?
そこでやるならCREATESTRUCTの修正だよ
0730デフォルトの名無しさん
NGNGOnShowWindow
0731デフォルトの名無しさん
NGNG最初は初期化関連処理はOnInitDialog()内で一通りやるように覚えておけば良いよ
それが無難
0732デフォルトの名無しさん
NGNGマルチスレッドを使う。
プログラム本体の動作はそのままにそれと別に裏で処理を行う場合は、
その処理用のスレッドを作成してそこで処理する。管理が面倒なので
若干高度なプログラムになるよ。何か適当にソースを拾ってきてマネする
ところから始める。
0733デフォルトの名無しさん
NGNG中断ボタンが押されたらフラグを立てるようなメッセージ処理を作っておく。
処理ループ中では、上記フラグの監視(フラグが立ったら強制終了)と、
PeekMessage,TranslateMessage,DispatchMessaheを使ってボタンコントロールの
メッセージを受けられるようにする。
こうすっと、シングルスレッドでもできる。
0734デフォルトの名無しさん
NGNG>>718みたいな質問が来るんだろうな。
0735デフォルトの名無しさん
NGNGダイアログって CREATESTRUCT だっけか?
0736デフォルトの名無しさん
NGNG0737726
NGNGありがとうございました。早速勉強して作ってみたいと思います。
0738デフォルトの名無しさん
NGNGなじぇ?
0739デフォルトの名無しさん
NGNGだから。
UpdateWindowですぐに描画させる。
0740デフォルトの名無しさん
NGNGそれじゃいかんのでしょうねぇ…。
0741デフォルトの名無しさん
NGNGInvalidate自身はポストしないよ
Windowsがポストする条件の1つを真にするだけ
0742739
NGNGごめん。
× InvalidateはメッセージキューにWM_PAINTをPostするだけ
○ Invalidateはクライアント領域を無効にするだけ
ですた。PostするのはOSですた。逝ってくる。。。
0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNG{
//ボタンが�@が押された処理
if(){
//ボタンが�Aが押された処理
}else if(){
}
}
押されボタンによって処理を分けたいのですがどのように判定すればよろしいですか?
0745デフォルトの名無しさん
NGNG合理的な方法はない。イベント分けろ。
0746デフォルトの名無しさん
NGNGIDで判別するとか?
wizard使わずに自分でメッセージマップを書く必要があるかも。
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGあとは744の好きなように料理すれ。
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNGニヤニヤ
0751デフォルトの名無しさん
NGNGポップアップメニューの項目のチェックのON,OFFが出来ません…
UPDATE_COMMAND_UIもダメですし、直接 CheckMenuItem()してもダメでした。
もう、分けがわかりません。
誰か分かる方が居たらお願いします。
0752デフォルトの名無しさん
NGNG0753デフォルトの名無しさん
NGNG0754752
NGNGCDialogには「WM_INITMENU」に対応する関数が無いみたいです。
あったとしても、CheckMenuItem()で変更が出来ないんですよね…
OnContextMenu()の中で、CheckMenuItem()しても、全く変化なしです…
0755754=751
NGNG>>752
CDialogには「WM_INITMENU」に対応する関数が無いみたいです。
あったとしても、CheckMenuItem()で変更が出来ないんですよね…
OnContextMenu()の中で、CheckMenuItem()しても、全く変化なしです…
0756デフォルトの名無しさん
NGNG少し前からわからんくせに回答してる奴が紛れてるようだが何かあったのか?
0757755
NGNGいや、ダイアログには無いですよ…
AppendMenu()で追加は出来ても
CheckMenuItem()でチェックは付けれないんです…
0758デフォルトの名無しさん
NGNGなかったら、メッセージのフィルタを変える。
ダイアログリソースエディタ上で右クリ→イベント→クラスで使用可能なメッセージ用フィルタ→「ウィンドウ」
CheckMenuItemでチェックできないはずはない。第二引数をTRUEにしてたとかは初心者にありがちだが(MF_CHECKED)
0759デフォルトの名無しさん
NGNGインストーラのダイアログとかの
バーば伸びていくタイプのメーターチックな実装を実現するクラスはなんですか?
0760デフォルトの名無しさん
NGNGCProgressCtrl
バーばっ
0761デフォルトの名無しさん
NGNGサンクスコ
0762デフォルトの名無しさん
NGNG0764755
NGNG完全に見落としてました…
普通に型がUINTだから、分かり難いです…
パラメータがビットのフラグを取る時は
いっその事 型を「BITFLAG」とか「BITVECTOR」とかにして欲しい。
0765デフォルトの名無しさん
NGNG0766758
NGNGまあ、俺は一回しかレスしてないけどな。
こじれてきたら該当箇所を晒してみればサクっと解決することも多いよ。
昔こんなことあったなって思いついて付け加えたのがたまたまハマって良かったが。
フラグに型か・・・次の仕事はDelphiを押せ
0767デフォルトの名無しさん
NGNGCEditのコントロールにフォーカスが来ると、自動的にカーソルが末尾に行くようにしたいんですが、なにかいい方法ないでしょうか?
void Cxxx::OnEnSetfocusEdit()
{
m_Edit.SetSel(-1, -1, FALSE);
}
調べたところ、これで出来るという風なことなんですが、うまくいきません。。
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGダイアログのウィンドウとは別あのバーだけ表示させてさらに背後のダイアログ上で処理を進めるにはどうしたらいいですか
0770デフォルトの名無しさん
NGNGプログレス持ったダイアログ表示させれば良いだけだろ。
DoModal ではなく Create で作る。
0771デフォルトの名無しさん
NGNGサンクス
CForProgfp;
ってやって
fp.Create(IDD_DLG_FOR_PROG,NULL); // 失敗?
fp.DoModal();//成功
失敗しているのかどうかしらんけども窓が出てこない
DoModalでやったらちゃんと表示される
なんでかわかんない
0772デフォルトの名無しさん
NGNGCForProgfp;
fp.Create(fp.IDD,NULL);
でも駄目ですね
一緒か
0773デフォルトの名無しさん
NGNGShowWindow しないとダメ。
念のため書いておくけど、
↓これ含んだ関数を抜けちゃうと、破棄されてしまうオチが。
CForProg fp;
0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNGShowWindowなんてものがあることをしりませんでした
ところで僕はいまVisualStudioを使ってグラフィカルなプログラムをかいているのですが
それの各要素にIDというのが振られていますが
動作中のプログラムはどこにこれを保持しているのでしょうか?
勘違いだったらすんません
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGコンパイルの段階でエラーになります。(gccでは出来るのに。)
void *vp= aiueo;
(int *)vp ++;
これって文法的にはどうなんでしょ?
VCがそういう仕様なんでしょうか?
そもそも、Cの文法(ANSI C?)で規定されていないんでしょうか?
0778デフォルトの名無しさん
NGNGIDを持っていないウィンドウとかをClassっぽく使うにはどうしたら良いのですか?
要はダイアログとかのエディット画面を使わずに座標指定だけで
CProgressCtrlを使いたいのですがどうすればいいのかさっぱりわからんのです
0779デフォルトの名無しさん
NGNGp->Create(...);
0780デフォルトの名無しさん
NGNGあとVC++初心者スレもあるから、なんつーか・・・察すれ
0781デフォルトの名無しさん
NGNGそういう気遣いすらできないから、初心者なんだろ?
この場合、「ネット初心者」っつうプログラム以前の問題になってくるけどな。
0782デフォルトの名無しさん
NGNG0783777
NGNG確認しないまま書き込んでしまいました。
0784VC++
NGNGstruct Flg{
int flg;
//flg = 0;
int getFlg(){
struct Flg f ;
return f.flg ;
} ;
void setFlg(int updown){
struct Flg f ;
f.flg = updown ;
} ;
} ;
0785デフォルトの名無しさん
NGNG//784の続き
void CShadowDlg::OnButton5()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
Flg l;
int a = l.getFlg();
l.setFlg(2);
a = l.getFlg();
UpdateData(TRUE);
m_ie2.Format("%d",a);
UpdateData(FALSE);
if(a == 0 || a == NULL ){
setFlg(1);
UpdateData(TRUE);
m_e1.Format("テスト2");
UpdateData(FALSE);
}else if(a == 1){
setFlg(0);
UpdateData(TRUE);
m_e1.Format("テスト1");
UpdateData(FALSE);
}
0786784
NGNGなにかいいほうほうはないでしょうか?よろしく願いします。
0787デフォルトの名無しさん
NGNGstruct Flg{
int flg; ← [A]
//flg = 0; ← このコメントもわけわからんが...
int getFlg(){
struct Flg f ; ← これはもっとわからん...
return f.flg ; ← まさか、[A] の値を返しているつもりか.... ?
} ;
0788デフォルトの名無しさん
NGNGまずかった?
すみません私JAVAあがりなもので・・・・
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNGOnButton(){
static int f = 0;
f ^= 1;
if (f){
}
else{
}
}
じゃだめなの?
0792784
NGNGclass Flg{
privete flg;
public int getFlg(){
retrun flg
}
public void setFlg(int i){
flg = i;
}
}
javaでかくとだとこんなかんじにしたいです。C++オブジェクト指向でしょ・・・・?
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG上のようになって
「C++オブジェクト指向でしょ・・・・? 」
なのかが全くわからない
0795デフォルトの名無しさん
NGNG0796784
NGNGありがとうございます。できました
0797デフォルトの名無しさん
NGNG高倉健みたいなセリフでつ
0798784
NGNG0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG0801高倉健
NGNG0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG0804高倉健
NGNG0805デフォルトの名無しさん
NGNGexeファイルに全て入れて配布したいのですですが、
どうすればいいのでしょうか?
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809805
NGNG0810デフォルトの名無しさん
NGNG情報(リソース)をセクションを作って持つことができる。
0811デフォルトの名無しさん
NGNGm_b1.EnableWindow(FALSE);
GetDlgItem(IDC_RADIO1)->EnableWindow(FALSE);
GetDlgItem(IDC_RADIO4)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE);
UpdateData(TRUE);
m_e1.Format("準備完了");
UpdateData(FALSE);
}
エディットボックスに入力されてるかどうかを判定したいのだけど、これでうまく判定されないのはなぜですか?
またどのように判定すればいいのですか?
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNG入力判定ってのは、最初の「if(m_e5.GetLength() != 0){」のこと?
なら、その前にUpdateData(TRUE);がないとダメなのでは?
0814デフォルトの名無しさん
NGNG授業で夏休み前までにグラフィックエディタ作るとか言ってるよ
漏れには2時間かけてサンプルに
ステータスバーに座標表示を追加するのが精一杯でした…
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGテンプレ作った後、自分ではずしちゃえば?
SDIだったら、フレームだけですべて制御できるとオモタ。
0817デフォルトの名無しさん
NGNGソースを見てみるのも一つの手。
俺はそうやって理解した。
0818デフォルトの名無しさん
NGNGデキる奴に作ってもらえ。
0819デフォルトの名無しさん
NGNGWin32知れば、MFCわかってくるし、ある程度便利なライブラリって事もわかるよ。
つーわけで近道せずにWin32からはじめることを勧める。
(激しくスレの趣旨に合ってないがごめんちゃい)
0820デフォルトの名無しさん
NGNG才能ないやつは、どっち先にやったところで同じ。
才能あれば、MFCだろうがWin32だろうが容易に理解できる。
0821デフォルトの名無しさん
NGNG確かに。
漏れも仕事でMFC使う羽目になって、デバッグモードでトレースかけながら
MFCとAPIも一緒に勉強できたよ。
漏れ程度でも判るんだから、MFCわからねなんて言ってる香具師は工夫が足りないね。
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG大雑把にこんなダイアログがあったとする。
┌───┐
│■□□│
└───┘(注:□はStaticフレームとその中のコントロール部品群)
このダイアログ、リサイズすることになったのだが
そのときは■を大きくしたい。
縦方向の伸びに対してはなんとかなった。
しかし、横方向の伸びに対応するのがなかなか巧くいかない。
何かいい手立てはないもんだろうか。
0824デフォルトの名無しさん
NGNGどうデザインするか、あなたのセンスが問われるところ。
これといった答えはない。
0825デフォルトの名無しさん
NGNGMFCだと自前だねえ。
他の開発環境ならアンカー(anchor)とかそんなプロパティがあって、相対的なウィンドウの配置を決めることができる。
上下左右辺(top,bottom,left,right)毎にウィンドウのサイズに合わせてリサイズや移動するような仕組みで、
その図で■がleftはanchor=falseになっているがright=true、そのとなりの□はleft=true, right=trueな場合、
┌───―┐
│■■□□│
└───―┘(■は二つじゃなくて拡大されている)
ってな動きになる。
と、まあ、こんなのは考え方の一つだけど、参考にはなるんじゃなかろうか
0826デフォルトの名無しさん
NGNG┌───┐
│3 2 1 │
└───┘
この順番で計算していく。
cx = ウィンドゥの大きさ、として。
1.right = cx - {1と右端の隙間の幅};
1.left = 1.right - {1の幅};
2.right = 1.left - {1と2の隙間の幅};
2.left = 2.right - {2の幅};
3.right = 2.left - {2と3の隙間の幅};
rightとleftは各コントロールのGetWindowRect、MoveWindowに対応する値と思ってくれい。
0827デフォルトの名無しさん
NGNGこれ使ってみるとか
http://www.codeguru.com/Cpp/W-D/dislog/resizabledialogs/
0828デフォルトの名無しさん
NGNG1つの方法だな。
こーゆーのは理屈で書けんか?
2,3の幅は固定して、窓幅に応じて1幅を可変にする とか。
0829デフォルトの名無しさん
NGNG0830823
NGNG幅を固定するブロックも位置は変えなきゃいけないわけだし、厄介だねぇ。
いやさ、Motifに慣れているとどうもね。
CodeGuruも参考にして、今日の午後にでもクラスをこさえてみるよ。
情報感謝。>ALL
0831デフォルトの名無しさん
NGNG俺もMotifから入ったから、Winの不便さはようわかる。
枠の大きさに応じてパーツの大きさを自動可変してくれる、
あれは便利だぁね。
0832>>823
NGNG各コントロールの位置と大きさを、クライアント(ウィンドウ)サイズから
計算して、OnSize()内あたりでSetWindowRect()かMoveWindow()でも使えば
うまくいくかと。
0833デフォルトの名無しさん
NGNGGetWindowRect()とGetClientRect()の区別を意識しておいた方が良い。
Windowsのデスクトップ・デザインはユーザーによって可変のものだから
ウィンドウ境界線の太い細いが環境によって違うことがある。GetWindowRect()
で取ってクライアント領域だと思ってると、場合によっておかしなことになるので
注意が必要。
0834デフォルトの名無しさん
NGNG座標の取り扱いは非常にやっかいだね。
Get と Set で基点が違うから、わざわざ座標変換しないとあかん。
0835デフォルトの名無しさん
NGNG0836デフォルトの名無しさん
NGNG0837830
NGNGそれを「参考にして」クラスを製作中。
>>831
だよね〜。尤もMotifにも不満はあって、RowColumnの使えなさは泣けたけど。
>>833
お約束のように、どっちか5分間悩んだ。
>>835
只逃げるのでは癪だから↑の如く製作中ですよ。
>>836
Resizerを見ると、予めサイズを計算しておいて最後にSetWindowPos()してますね。
Resizer、依存関係の定義にちょっと癖があるけどそこそこ便利。
#余り続けると日記にするなって怒られそうなので名無しに戻ります。
0838デフォルトの名無しさん
NGNGMFC C++でダイアログベースでアプリを作ってるのですが、
CStirngに格納されたデータ(\r\n入り)を印刷するときに、
DrawTextを使って印刷してるのですが、
複数枚にわたる印刷が出来ません。
どうしたらいいのでしょうか?
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGこの二つの関数の長所と短所はなんでしょうか?
両者択一ならば長所と短所を教えていただければ、これ幸いです。
0842デフォルトの名無しさん
NGNGOnPaint=Windows またはアプリケーションがアプリケーション ウィンドウの一部の
再描画を要求するとき
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNG見てみようとか、そんな気は
さ ら さ ら 無 い よ う で す ね
0845デフォルトの名無しさん
NGNG0846デフォルトの名無しさん
NGNGじゃあこの辺で次の質問にいってみましょう。
0847デフォルトの名無しさん
NGNGロール紙を使いなさい
0848デフォルトの名無しさん
NGNGVSのセットアップ。
あとは、普通に参照するだけで、簡単に閲覧できる。
0849デフォルトの名無しさん
NGNG適当にブレーク張って、MFC関数内にステップイン するのが一番簡単。
0850デフォルトの名無しさん
NGNGメニューバーが必要ないので、PreCreateWindowで「cs.hMenu = NULL」を追加して
メニューを削除したのですが、メニューバーの境界線(水平線?)だけ残ってしまいます。
これって消えないんでしょうか?
0851デフォルトの名無しさん
NGNGOnPaintの利点がさっぱり分かりません。
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNGOnPaintとOnDrawの関係について詳しく書かれているから
本屋へ行って読んで来い。
0854デフォルトの名無しさん
NGNGマウスメッセ−ジゲットするにはどうしたらいいですか?
0855デフォルトの名無しさん
NGNG0856本田
NGNG>OnPaintの利点がさっぱり分かりません。
CXXViewクラスを使う時には、OnDraw()を使って、
CXXWndクラスを使うときには、OnPaint()を使う。
0857デフォルトの名無しさん
NGNG突然の質問ですが、ワーカースレッドで処理を行うライブラリを書いていたのですが、
1処理1スレッドを起動するので、とりあえずテストとしてスレッドが起動できなくなった
とき、どうなるのかなーテストをやってみました。
で、
pThread = AfxBeginThread(WorkerMain, pCommand, ...);
てな感じのものを2000回ほどやってみました。
すると、まぁ予想通りNULLが返ってきたので、ふむふむ、と納得していたのです。
が、タスクマネージャーをみてみると「1スレッド起動できない」あたり2個のハンドルが
増えていくではありませんか!
で、質問ですがこれはどうにかできないのでしょうか?
MSDNには、失敗時にはうまく開放する、うんぬんといった記述があったようなのですが。
0858デフォルトの名無しさん
NGNG...
0859デフォルトの名無しさん
NGNGOSは何?
0860デフォルトの名無しさん
NGNGXP Professionalです。
0861デフォルトの名無しさん
NGNGこちらで質問させてください。
ダイアログベースでウインドウを作っているのですが、
もうひとつのダイアログを呼び出すにはどうしたらいいのでしょう?
それと、ボタン押下でアプリケーションを終了させるときは、
DestroyWindowでよいのでしょうか?
0862デフォルトの名無しさん
NGNGダイアログをダブルクリック→ClassWizard→好きな名前つける
ダイアログを呼び出したいクラスで作ったダイアログクラスを宣言
表示したい場所でDoModal
モーダルじゃないダイアログを呼び出したければ
メンバで宣言して適当にCreateしてShowWindowで呼び出す
0863デフォルトの名無しさん
NGNG>アプリケーションを終了させるときは
PostQuitMessage
0864デフォルトの名無しさん
NGNGどうもありがとうございます!
助かりました!
0865デフォルトの名無しさん
NGNGボタン押したらもう一個ダイアログが立ち上がるアプリケーション
作ってるんですけど、
ダイアログが起動した時に、一度だけ行いたい処理があるんですが、
どうやったら実現できますか?
Activateのメッセージを使ってみたんですけど、
Activeになるたびに処理が走るので、これじゃ駄目だな。と。
VBで言うところの、FormLoadや、Initみたいなものってないでしょうか?
0866デフォルトの名無しさん
NGNGOnInitDialog()
0867デフォルトの名無しさん
NGNGもう一個の方にもハンドリングできたんですね。
まぁ、当たり前っちゃ当たり前ですね。
あと、最後に一個だけお願いします。
ダイアログボックスで、escキーを押すとウインドウが閉じてしまいますが、
これを無効にするにはどうしたらいいですか?
0868デフォルトの名無しさん
NGNGPreTranslateMessageあたりを使ってEscキーだったらTranslateを中止するのが無難。
具体的なやり方はぐぐれば出てくるかと。
他には、OnCancel()を自前で処理してCDialog::OnCancel()しないようにする手もあるが、
その場合はEscキー以外の手段でも(例えばAlt+F4)終了できなくなるので要注意。
#勿論OnOK()はできる。
0869デフォルトの名無しさん
NGNG定番
ttp://www.athomejp.com/goldfish/mfc/dialog/nonesc.asp
0871デフォルトの名無しさん
NGNG{
str = TEXT("Hello"); //ここで例外
}
みたいな関数を呼んだ場合、同じEXE内の関数だったらOKだけど
DLLの関数を呼んだ時、例外になるんですけど何故だか分かりますか??
ちなみに、EXEの方をデバッグ版でMFC共有DLLでビルドした時だけ
動きました。
他は例外になります。
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG根本的にCStringの使い方を間違えている。クラスとして作られていて機能を
与えられているところがどうなのかをちょっと考えてみた方が良い。
0874デフォルトの名無しさん
NGNGこれって、外観を変えることできないのですか?
プロパティみてもそれらしいものはないし・・・。
0875デフォルトの名無しさん
NGNGどこから言っていいのかわからんが、CWndの使い方覚えれ。
派生クラスはわかってるだろ?
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGイメージをJpeg形式で保存したいのですが、圧縮率が変えられません。
Imageクラスなら変えられるんですが、DIBじゃないので困っております。
CImageでエンコードの設定ってできないですか?
どなたかお助けを・・・
0879デフォルトの名無しさん
NGNGメニューで
新規作成(N)
開く(O)...
のように、ショートカットキーの後ろに
...
が付くものと、付かないものとあるんだけど
これってどういう意味があるんですか?
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGこれってトリビアになりませんか?
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGこんなことも知らねーとわ、情けなくって父ちゃん涙が出てくらあ
0884デフォルトの名無しさん
NGNG自作メッセージを識別するためにウインドウメッセージでは WM_USER
+独自番号のような形で使用すると思いますが
自作コントロールにおいて、コマンドメッセージを作りたい場合に
コマンドメッセージのユーザー定義初期番号のようなものはありますでしょうか?
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNG勝手な日本語ですいません。
正確に言うとWM_COMMANDで通知があったときの
WPARAMのHIWORDの値のことです。
例えば、ListBoxコントロールだと選択の変更が発生すると
WM_COMMANDメッセージのWPARAMのHIWORDにLBN_SELCHANGEが入ってくると思います。
独自コントロールで通知をしたい時に、LBN_USERNOTIFYのようなことをする必要が出てきます。
この番号を勝手につけてしまって良いのかどうか?ということです。
もし、WM_USERのように独自定義したければこの番号以降を使えというようなものがあるので
有れば、それを教えていただきたいと思いまして・・・
0887デフォルトの名無しさん
NGNGMFCだとすでに決まってるものもいくつかあるので、変な数値使うと問題あり。
WM_USERに相当するものは残念ながら知らないけど、
普通にやってれば重複したのは注意してくれるから問題ないんじゃない?
ていうか、LBN_〜とかって、NotifyメッセージのIDじゃん。
Notifyだとウィンドウのidとかと組み合わせて重複しないようになるから
ウィンドウクラスが違ってると同じ値使ってる場合もあるね。
0888デフォルトの名無しさん
NGNGMFCでそれを実現したいのです。
そこで、前回描画した線を消すにはどうしたら良いでしょうか?
一番いいのは、XORで線が描画できると良いのですが・・・
0889デフォルトの名無しさん
NGNG返答ありがとう御座います。
MFCのCCheckListBoxで、独自につけているくだり(CLBN_CHKCHANGE)
があったのでここの値は重複しないように勝手につけて良いと勝手に解釈
することにしました
0890デフォルトの名無しさん
NGNGCDC::DrawFocusRect
0892デフォルトの名無しさん
NGNGClassWizardはどうやって表示させるんでしょうか?
キーワード検索してみると、「ClassWizard の使い方」の中に
"ClassWizard ([表示] メニューの [ClassWizard] を選択) "って
あるんだけど、どこにもないんですが・・・。
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNGhttp://web.archive.org/web/20030423062923/http://cgi23.plala.or.jp/a-w-h/mfc/message.html
0896デフォルトの名無しさん
NGNGではつくれないのでしょうか?
0897デフォルトの名無しさん
NGNG「一般C++クラス」でできるじゃん
つーか、それ以前にWizardの類を無視して
勝手にclass書けばいいだけの話
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG・・・ここまで面倒みてやるのは本来なら有料
今日は妙に機嫌が良いがこれが限度
0902デフォルトの名無しさん
NGNGCTreeCtrlで全てのルートのアイテムを取得するにはどうすればよいでしょうか?
CTreeCtrl::GetNextItem()で取得できそうなのですがどうしてもうまくいきません。
どなたかご存知でしたらご教授お願いいたします。
以下、参考にしたマイクロソフトのサンプルをです。
HTREEITEM hCurrent = pCtrl->GetNextItem(TVI_ROOT, TVGN_NEXT);
↑の箇所で失敗してしまいます…
[sample]-------------------------------------------------------------
CTreeCtrl* pCtrl = (CTreeCtrl*) GetDlgItem(IDC_TREE1);
HTREEITEM hCurrent = pCtrl->GetNextItem(TVI_ROOT, TVGN_NEXT);
while (hCurrent != NULL)
{
// 何らかの処理
hCurrent = pCtrl->GetNextItem(hCurrent, TVGN_NEXT);
}
0903デフォルトの名無しさん
NGNG右クリックすると クラスの新規作成はあるのですが
基本クラスを選ばなければ追加できないのですが
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG同意
>>894
ありがと
0906デフォルトの名無しさん
NGNGコンビニで売ってるやつか?
0907デフォルトの名無しさん
NGNGMicrosoft Foregroud Constructionの略。
使いやすさを全面的に出してプログラミングにおける
プログラマの負担を軽くしようという発想から
開発されたらしい。今ではMFCも肥大化してしまったけどね。
0908デフォルトの名無しさん
NGNG|
|
|
/V\ J
/◎;;;,;,,,,ヽ >>907
_ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
ヾソ:::::::::::::::::.:ノ
` ー U'"U'
0909デフォルトの名無しさん
NGNGさり気無くスペル間違えてる辺りとか高度だなw
0910デフォルトの名無しさん
NGNGセルの自動幅調整はどうやって行ったらよいのでしょうか?
0911デフォルトの名無しさん
NGNGちと難しいな。
試してみたが、うまくフォントのサイズがとれなかった。
わかるひとフォロープリーズ
0912デフォルトの名無しさん
NGNGなんとか解決したいのですが、どうすればいいでしょうか?
0913デフォルトの名無しさん
NGNGMSFlexGridはよくわからないのだが、姉妹品(おねえさん?)
のvsFlexGridには列をパラメータにしてAutoSizeという
メソッドがあったが。。。
0914デフォルトの名無しさん
NGNGラバーバンディングで検索汁!
0915デフォルトの名無しさん
NGNG再描画時の背景消去が原因
0916デフォルトの名無しさん
NGNG再描画時に背景消去をさせないにはどうすればいいですか?
0917デフォルトの名無しさん
NGNGOnEraseBkgnd をオーバーライドしる!
0918デフォルトの名無しさん
NGNGInvalidateRect(NULL,FALSE);
2番目の引数をFALSEで背景消去抑制
0919デフォルトの名無しさん
NGNGフォントサイズをとる方法なら
MSFlexGrid.GetCellFontSize
で各セルのフォントのサイズが取れる
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNGCRectTracker
0922デフォルトの名無しさん
NGNGAfxGetMainWnd
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNGあ、簡単なペイントソフト作ってる人じゃないか?
0926デフォルトの名無しさん
NGNG新規プロジェクトでCScrollViewにして作成して
今のCViewプロジェクトと変化している部分を変えたり追加するのが
一番簡単
気をつけるのは、基底クラスを呼び出している部分とか
メッセージマップの基底クラス部分とかね
0927デフォルトの名無しさん
NGNG質問なんですが
for(int i=0; ...
みたいにiを定義すると標準C++ではfor文のブロック内のみが
スコープになると思うのですが、.netだと外側からも見えるようです。
これを標準C++仕様にするにはどうしたらいいのでしょうか?
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNG#define for if(false) else for
0930デフォルトの名無しさん
NGNGそうそうfor文のスコープはなにかがおかしい。オレもこれではまったことがある。
for( int i=0; ...) {statementA}
for( int i=0; ...) {statementB}
ってやると、statementBにAのiが影響していた。詳しく調べなかったのでこれ以上のことは判らない。
0931デフォルトの名無しさん
NGNG詳しく調べてくれ、気になる・・・
後のfor文のi=0の初期化は無視か?
0932デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNGfor(int i=0;...){ }
}
コンパイルオプションでも直せるらしいけど、
それはそれで不都合があるらしいので、
こうするといいよ。
0934デフォルトの名無しさん
NGNGわかりやすく載ってるサイトとかないですか?
0935デフォルトの名無しさん
NGNGはっきりコーディングレベルで明快に書けばいいのに。。。
なんで、そんなに書き方にこだわるんだろう。
0936デフォルトの名無しさん
NGNGんだな
組み込み用のクロスとかローカルルール満載の処理系はよくある
割り切らねーと仕事にならん
0937デフォルトの名無しさん
NGNGint i=1;
for(int i=0;;){break;}
std::cout << i; // iは0
二重定義でエラーにはならないけど
同一のiを意味するという・・・なんとも不可思議だ
0939デフォルトの名無しさん
NGNGせめてアドレスバーつけたいんですけど
0940デフォルトの名無しさん
NGNGじゃ、ダイアログバーにコンボボックスあたりつければOK
0941デフォルトの名無しさん
NGNG自分のプロジェクトで参照して、DLLの関数を使用したいのですが、
どうしたらよいでしょうか?
プロジェクト設定のリンクにDLL名を入れたのですが、
ファイルが無効か壊れているってメッセージがでてしまうので、
やり方が間違っているようなのですが、
どうやって参照させたらよいでしょうか?
0942デフォルトの名無しさん
NGNGインポートライブラリ
0943デフォルトの名無しさん
NGNGDLLの使い方は、起動時に自動的にロードして使うやり方と自分でロードして使うやり方がある。
起動時にロードするためには、DLLと一緒に配布されているlibファイル
を実行ファイルにリンクしないといけない
もしDLLにlibファイルがついていないならば、自分でロードして使えということだろう
その方法についてはLoadLibraryというAPIを調べてみればよい
0944デフォルトの名無しさん
NGNG・・・LIB名(拡張子=.lib)
持ってない場合
A.>>943 の方法
B.DLLの提供元にねだる
C.DLLの作り損ない
0945デフォルトの名無しさん
NGNGしようとしても、輪郭のところをマウスで掴めなくなってしまったのですが
どうしたらマウスで掴めるようになるでしょうか。
ShiftKey+矢印Keyで一応サイズ変更はできるのですが、いったい何が
どうなっているのか・・・
0946デフォルトの名無しさん
NGNGListBoxやTabコントロールも一緒にリサイズさせたいのですが、
GetClientRectでフォームのサイズをとったあと、
どうやって設定させたらよいでしょうか?
SetClientRectってないし・・・
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNGOnSizeでは、CX,CYしか取れないのですが、
MoveWindowを使うときにはX,Yも必要らしいのですが、
X,Yはどうやってとったら良いでしょうか?
0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNGまともなリサイズ処理ははそれなりに複雑だよ
codeguruとかcodeprojectで、resizable dialogの
言葉に引っかかりそうなソースを読んでみたら?
0951デフォルトの名無しさん
NGNGこの辺の意味をちゃんと理解しておれば、リサイズなんて怖くねーべ。
0952デフォルトの名無しさん
NGNG0953829
NGNG0955デフォルトの名無しさん
NGNGc:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include\afxtempl.h(1159): error C2582: 'operator '=' 関数を 'MDB' で使用できません。
と言われました
CListから生成したオブジェクトの中でCListを使うことはできないのでしょうか?
以下のような感じでソースをかいてみました
0956955
NGNGint Seqno;
int Rcvsize;
int Type;
}Seqnoinfo;
typedef struct MDB{
int No;
int Done;
CList<Seqnoinfo> Silist;
int Mtopaddr;
int Msize;
int Rcvsize;
}MDB;
0957955
NGNG{
public:
CMemBuf(void);
~CMemBuf(void);
int Send(void);
int Run(int startaddr);
int Add(CCmdBuf&CmdBuf);
int Getcmdlen(DWORD cmd);
char* Getcmdname(DWORD cmd);
void Clear(void);
void Reset(void);
DWORD* TmpBuf;
DWORD* SendBuf;
int BufN;
int Maddr;
int Up;
CList<MDB,MDB&> MDBlist;
};
0958955
NGNG0959デフォルトの名無しさん
NGNGoperator=を定義して
CList間の=を明確化してあげればいい
0960955
NGNGうまく出来ました
0961デフォルトの名無しさん
NGNGどもです。
コントロールを含めてのリサイズだったので、結構参りましたが、
なんとかなりました。
情報ありがとうございます。
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNGこれの例外って、どうやって取ったらよいでしょうか?
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGダイアログ上のフォーカスをTABで移動していって、ボタンにフォーカスが来ると
点線と黒い影が出ると思うんですけど、
そこからSetFocusでフォーカスを別のとこに移動させると
点線だけ移動して、黒い影がボタンに残ったままになってしまいます。
この黒い影を強制的に消すにはどうしたらいいでしょう?
SetFocus()やらWM_KILLFOCUSは点線にのみ影響する。
では黒い影に対して操作できるもの何かありますか?
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNGato_iを使うならintを必ず入れるわけで
CStringの段階できちんと成形してから入れるようにすれば良いだろ
そのためのCStringのメンバ関数
便利なんだからそれを使え
0969966
NGNGhttp://www31.tok2.com/home2/ayaka/3.jpg
左のOKボタンについてる黒い影のことです。
SetFocusでフォーカスを移動すると、内側の点線のみ動いて
黒い影は残ってしまうのです。
0970デフォルトの名無しさん
NGNGあと、空白付きのパスだと、ダブルコーテーションで囲んでも、無効な引数とか言われちゃうのですが、他に囲み方ってあります?
0971デフォルトの名無しさん
NGNG試してないけど、ボタンを再描画してもダメ?
0972デフォルトの名無しさん
NGNGShellExecuteじゃだめなの?
0973デフォルトの名無しさん
NGNGBM_SETSTYLE
0974デフォルトの名無しさん
NGNG標準のボタンに設定されているから
黒い線が付いている。
0975デフォルトの名無しさん
NGNG半分間違い
0976966
NGNGなるほど。それをSendMessageするとして、
wParamは何を指定すればよいのでしょう?それっぽいのが見当たらないのですが。
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNGBS_DEFPUSHBUTTONだと黒い影がついて、
BS_PUSHBUTTONだと黒い影が消えましたっ!!
解決です。ありがとうございましたー
しかし、、なんて強引な・・その場しのぎな・・
0979デフォルトの名無しさん
NGNG開発が進めば進むほど、ExcelVBAからCOMを呼び出すのが
どんどん遅くなりました。
開発環境はWindowsXP VC6.0SP5です。
レジストリが原因だと思うんだけど、具体的にどんなツールでどんなことをすれば
速くなるんだろう。
えらい人教えて。
0980デフォルトの名無しさん
NGNGその場しのぎじゃなくて、Windows自身がそのように振る舞うから。
(フォーカス移動でBS_PUSHBUTTONとBS_DEFPUSHBUTTONの付け替えをする)
SetFocusで無理矢理変えたときにはそうならないんで、アプリ側で
世話してやんなきゃいけない、と。
0981デフォルトの名無しさん
NGNGレジストリエディタでHKEY_CLASS_ROOTの下を全部消す
0982デフォルトの名無しさん
NGNG787 名前:デフォルトの名無しさんsage 投稿日:04/06/23 21:32
>>777
NextDlgCtrlで。
0983デフォルトの名無しさん
NGNGMFC相談室 mfc11.dll
でもいいような気がするんだけど。
VisualC++って入ってると何も知らない初心者がたまに、
VisualC++使ってるってだけで内容はWin32APIの質問だったりただのC/C++の質問したりするから。
0984デフォルトの名無しさん
NGNGイイヨイイヨー
0985デフォルトの名無しさん
NGNG酸性
0986デフォルトの名無しさん
NGNG■MFC相談室 mfc11.dll■
http://pc5.2ch.net/test/read.cgi/tech/1088084875/
0987デフォルトの名無しさん
NGNGGJ!
0988デフォルトの名無しさん
NGNGおっさん乙
0989986
NGNG0990デフォルトの名無しさん
NGNGおっさんごめん
0991986
NGNG0992デフォルトの名無しさん
NGNGおっさん落ち着け
0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。