■MFC相談室 mfc11.dll■
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG前スレ
■ VisualC++(MFC限定)相談室 MFC10.dll■
http://pc5.2ch.net/test/read.cgi/tech/1074104008/
関連リンクは >>2-10 の辺り。
0910デフォルトの名無しさん
NGNGVC.NETじゃちゃんと同じになるんだけど・・・
0911デフォルトの名無しさん
NGNGウィザードで作った後、手作業でデフォルト引数書くとかするしかないんじゃないかなぁ。
デフォルト引数のある関数にジャンプしないのは俺もよくある。
近くの関数にジャンプしてからスクロール…っていつもしてる。
こういう仕様なんだとあきらめてるよ。
0912デフォルトの名無しさん
NGNG同じ環境でやってみたけど、CLASS VIEWがおかしいみたい。
コンパイルは通る。
0913デフォルトの名無しさん
NGNG見た目が破損しててもコンパイル・ビルド作業への影響は一切ない。
0915デフォルトの名無しさん
NGNG削除したくて、Trimで色々やってみたのですが、うまいこといきません、
教えてエロイ人。
0916915
NGNGで、解決しました・・・。
Trimに拘った、私が悪かったみたいです。
ご迷惑おかけしました〜。
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG2バイト文字が考慮されないっていうやつだろ、多分。
0920デフォルトの名無しさん
NGNGMFCはじめたばかりの初心者です。
質問ですが、ウインドウの背景を画像ファイルとして保存するにはどうすればいいのでしょうか。
いろいろ調べたのですが結局分かりませんでした。
環境はこのとおりです
OS:WindowsXP SP1
VC++.NET 2003
お願いします。どなたか教えてください。
0921デフォルトの名無しさん
NGNG読み出しなら ::LoadImage でできるが
書き込みのサポートはないから、思いっきり自力で書くことになる。
http://pc5.2ch.net/test/read.cgi/tech/1092524669/883-
0922デフォルトの名無しさん
NGNGCImageにアタッチすれば、CImage::Save()で保存出来るよ。
今ホットなGDI+を使うことになるけど。
0923デフォルトの名無しさん
NGNGありがとうございました m(_ _)m
0924デフォルトの名無しさん
NGNG作成したコントロールはVBでFormなどに貼り付けて使う予定です.
コントロールは実行時に他のDLLやファイルなどを読み込む必要があり,
ターゲットとなるexeのカレントパスを取得してファイルなどを読み込む処理を
コントロールのクラスのOnCreateメソッド(?)に書きました.
しかし,OnCreateではVBなどでコントロールをFormに貼り付けた時点で
実行されてしまうため,実行時のexeのパスを取得する部分を利用して
ファイルなどを読み込む処理でエラーが起きてしまいます.
プログラムが実行されるときに
一度だけ処理されるメソッドやイベントはあるば教えて頂きたいのですが.
環境 VC6.0 VB6.0 WinXP
0925デフォルトの名無しさん
NGNGDllMain()でやればいいんじゃないの。
0927デフォルトの名無しさん
NGNG0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGnew演算子で確保したメモリ領域を解放する処理は明示的に行っているんですが、
デバッグ版⇒CWinApp::Exitinstanceが実行される前に(明示的記述したタイミングで)、
メモリ解放処理が完了する。
リリース版⇒CWinApp::Exitinstanceが実行された後に、メモリ解放処理が完了する。
上記のような動きをしているみたいなんです。
メモリ解放処理後に、終了コードを各プロセスを管理しているプロセスに通知しているため
リリース版では管理プロセスが終了コードを受信した時にも、
対象のプロセスが動き続けていることになってしまいます。
こんな現象に関してご存知の方いらっしゃいましたらぜひご教授をお願いします。
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNGソース読んでみれば?
0932デフォルトの名無しさん
NGNGデバッグ版 DEBUG_NEW を定義せず
リリース版 最適化全てオフ
でテストしてみそ
0933デフォルトの名無しさん
NGNGする事はありますか?
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNGあるらしい
>>934
メッセージにも優先順位があるらしく、マウスイベントが
他のイベントより優先される場合もあるらしいよ
0936デフォルトの名無しさん
NGNGマウスイベントはメッセージキューを通らないで直接ウィンドウプロシージャへ行くメッセージじゃないか?
0937デフォルトの名無しさん
NGNGそうかも
「PostMessageでは試したことないけど」って言うの忘れた
0938933
NGNG同じ系統のメッセージの順番のみが問題ですんで、他のメッセージの割り込みは問題にならないです。
とりあえず大丈夫なものとしてやってみます
0939デフォルトの名無しさん
NGNGへ?
0940デフォルトの名無しさん
NGNGこのBITMAPINFOとビットマップの高さが増すにつれパレット番号を増加させるデータをもちいて
CreateDIBitmapにセットしてグラデーションのビットマップを作りました。(作ったつもり。)
これをメモリデバイスコンテキストでSelectObjectしてからディスプレイ(24bit)のDCにBitBltしたのですが、
この場合256カラー(パレットあり)を変換して24bitカラーのビットマップになってくれるとおもったのですが
どうもパレットデータはシステム内部のものをつかって描画してるっぽいんですがなぜですか?
そういうものですか?
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNGHINSTANCE hInst;
hInst = LoadLibrary("Graphics.dll");
HBITMAP hBitmap;
hBitmap = LoadBitmap(hInst, "IDB_BITMAP1");
とやっても、hBitmap == NULLになってしまってビットマップを読み込めません。
僕のどこが間違ってるんでしょうか。
0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNG全体的に間違ってると思います。1行目とか。
その DLL には本当に "IDB_BITMAP1" というビットマップが入ってますか?
MAKEINTRESOURCE(IDB_BITMAP)の間違いではないのですか?
0945デフォルトの名無しさん
NGNG1行目書きなおしたら変になってしまいました
自分で作ったDLLなんで IDB_BITMAP1 が入ってるのは間違いないはずなんですが、どうもそれだと読みこめなかったみたいで、
MAKEINTRESOURCE(1000);
と直接リソースIDで指定してもう一度やってみたら読み込めました。
なんでこれだとできるのか分かりませんが、とりあえず解決したみたいです。ありがとうございました。
0946デフォルトの名無しさん
NGNGそれがわかるまで先に進むな
一歩たりとも
0947デフォルトの名無しさん
NGNGMFCなんか嫌いだぁ
>>933
キューの中では順序通りでも PeekMessage で優先して取り出せるでしょ
DispatchMessageが中で何してるかは知るか。
>>940
パレットは別に CreatePaletteとSelectObjectでセットするんだったような
GDI+への対応はいつになるんだ?
>>945
まず無理だろうが、Graphics.dllのソースの中にある resource.h をインクルードしてみるといい。
これがMFCというやつだ。
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG断言していい。
入ってない。
そういうあいまいな認識でコード書くと周りに甚大な被害を及ぼすからやめてくれ。
>>947
引っ込め。
0950デフォルトの名無しさん
NGNGこれほど的外れな回答も珍しいな。
0951デフォルトの名無しさん
NGNGどうも一回目は保存されなく2回目から保存されます。
いろいろと設定しているですがうまくいきません
どなたか教えてくださいませ
ソフト visualstadio 6.0
OS win xp
ビットマップインフォを作成する
DDBを作成してウィンドウからビットマップをコピー
メモリ割り当ててビットマップからデータを取得
ビットマップファイルヘッダーを作成
データをファイルへセーブ の手順でやっています
hfile = CreateFile(fn,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL);
WriteFile(hfile ,&bmfh,sizeof(bmfh),&tmp,NULL);
WriteFile(hfile,&pbmi->bmiHeader,sizeof(pbmi->bmiHeader),&tmp,NULL);
if(pbmi->bmiHeader.biBitCount <= 8)
{
WriteFile(hfile,pbmi->bmiColors,sizeof(COLORREF)*(1<<pbmi->bmiHeader.biBitCount),&tmp,NULL);
}
SetFilePointer(hfile,bmfh.bfOffBits,NULL,FILE_BEGIN);
WriteFile(hfile,pbits,pbmi->bmiHeader.biSizeImage,&tmp,NULL);
CloseHandle(hfile);
0952デフォルトの名無しさん
NGNGオススメの書籍等あれば教えていただけませんでしょうか?
0953デフォルトの名無しさん
NGNG・1回目に保存処理が走っているのか確認
・各APIの戻り値を確認
0954デフォルトの名無しさん
NGNGこれ?
0955デフォルトの名無しさん
NGNGVCそのものを全く知らん状態で始めるならとりあえず入門書として
林晴比古の本なんかを薦めてみるが、取っ掛かりだけ掴めれば
後は余程専門的な事をやらない限りはネットで調べた方が早いし
詳しい情報が載ってる。
0956デフォルトの名無しさん
NGNGCDialgを継承したクラスに
WaitForSingleObject()を使って
常に特定のイベントがシグナルか監視する
独立した関数を作りたいのですが
良い方法はありませんか?
良かったら教えてください。
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG関係ないけどFILE_SHARE_WRITEはやめといた方が・・・
0959デフォルトの名無しさん
NGNG>>955に同意。
ただし、MFC入門書は良書が多いので問題ないけど、
その後をどう進むかだね。
C++の専門書(入門書でなくSTLに触れていて、テンプレート関連が充実)
を読むのが良いかも。
0960デフォルトの名無しさん
NGNG環境:WinNT、VC6.0
でMFC使ってる者です
BOCのFlexGrid使ってるんですが
これのツリービューを作っているんですが
状態の保持が上手く出来ません
ツリーのオブジェクトを削除したり置換したりすると
縮めたオブジェクトが展開されてしまいます
0961デフォルトの名無しさん
NGNGBOC(現GrapeCity)ならサポートが丁寧だから向こうに聞いたら?
Gridでなんでツリーなのかよく判らんが。
0962デフォルトの名無しさん
NGNGで、質問は何なの?
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0965デフォルトの名無しさん
NGNG現在2chブラウザ使えないの状況下なのでこうなってます
>>958さん
FILE_SHARE_WRITEはやめといたほうがいいといいますがそれはどういうこと
ですか?
>>954さん
一応命令は削除してみましたが変化は見られませんでした
>>953さん
APIはすべて確認したところすべて正常でした
自分の考えでは再描画系に問題があったのではないかと判断しております
みなさま、ご意見ありがとうございました。
0966デフォルトの名無しさん
NGNGピクチャーボックスの枠を消去したいのですがネットで方法を
探しているのですが見つかりません
どなたかおしえてくださいませ
0967デフォルトの名無しさん
NGNGビットマップスタイル
0968sage
NGNG0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNG>FILE_SHARE_WRITEはやめといたほうがいいといいますがそれはどういうこと
denyじゃなくてshareだぞ。
複数の書き込みオープンを許すんだぞ。
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNGネストって出来ないんでしょうか?
ネストした子側のウインドウサイズが0x0になっていて
うまく動作しませんでした。
親側のビューをDeleteView()やGetPane()->DestroyWindow()などで
削除してみたりしたんですが変わりませんでした。
よろしくお願いします。
0974デフォルトの名無しさん
NGNG707 名前:デフォルトの名無しさん[sage] 投稿日:04/10/02 19:32:00
質問です。
メインのダイアログ(MainDlg)にタブコントロールを貼り付けて
PropertySheet(CPage3)を作成し、その上にRadioButton(IDC_RADIO1)を貼り付けました。
で、CPage3.hのメンバ変数に
public:
CButton *m_pButton1;
と書いて
CPage3.cppに
CPage3::CPage3()
: CPropertyPage(CPage3::IDD)
{
m_pButton1=(CButton*)GetDlgItem(IDC_RADIO1);
}
と書きました。
で、MainDlg.cppのOnInitDialog()
に、m_pPage3->m_pButton1->SetCheck(1);
と書きました。
ちなみにこの動作を入れなければ、タブコントロールもきちんと動いてますし、他のコントロールへの操作も出来てます。
しかしこれを入れると、実行時に不正な処理を行いました。 と言われます。
何故でしょうか?
VC++.NET2003でMFCを使ってます。
宜しくお願いします。
0975デフォルトの名無しさん
NGNGやったことあるので出来ると思います。
CSplitterWnd のソースだかどっかにうんこのようなASSERTが入ってた気がするので
オーバーライドとかで回避しないとデバッグ時に死ぬ。
0976デフォルトの名無しさん
NGNGCString型 に改行文字を入れることは可能なのか
CString型 に改行文字を入れた状態でファイル書き込みWriteFileを
行った場合改行されるものなのですか?
自分はやってみたのですが無理でした
CString a="aiueo"+'\n';
すいませんが教えてください。
0977デフォルトの名無しさん
NGNG↑なんじゃこりゃ
・・・ポインタと整数の足し算だからエラーも警告も出ないのか・・・。
0978デフォルトの名無しさん
NGNG可能。
Windowsでは改行を "\r\n" の2文字であらわしているので、
CString a="aiueo\r\n";
0980デフォルトの名無しさん
NGNGバッファにいれとく限りにおいては、「\n」だけで良いんじゃないか?
テキストモードにしとけば、ファイルへの出力の時に内部処理で\r\nになる。
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGそのとおり実行できましたー
ありがとうございます
0983デフォルトの名無しさん
NGNGCStdioFile使う手はある。
0984デフォルトの名無しさん
NGNGCFileDialogを使って任意でファイルを保存するようにしているのですが
すでにあるファイルを、上書きしようとしたら警告がでません。
拡張子をつけた状態では警告文はでるのですがわざとファイル名から拡張子を
消してみると今度は警告がでません。おそらくファイル名の文字列が
違うので警告文がでないのは承知なのですが拡張子は同じはずなので
警告がでてほしいのですが、対処方法がわかりません、すいませんがご教授
お願いいたします
CFileDialog myDLG(FALSE,NULL,NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"ビットマップ(*.bmp)|*.bmp||");
if(myDLG.DoModal() != IDOK) return;
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNGいいからもう寝ろ。
0987デフォルトの名無しさん
NGNGコンストラクタではタイミング的に早すぎて、
GetDlgItem(IDC_RADIO1)が成功しないんだと思う。
OnInitDialog()内で行ってみては?
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNGGetOpenFileName()、GetSaveFileName()あたりを参照。
MFCのCFileDialogはAPI並に面倒くさいわりに得られるメリットが薄く、
ぶっちゃけ必要ないクラスのひとつ。
下位互換のための存在だと思って差し支えない。
そんなわけで素直にAPI使っとけ。
0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNGダイアログベースのアプリにタブコントロールを配置して、PropertySheetを挿入してるのですが
途中でもう一度新しくPropertySheetのインスタンスを生成して、タブコントロールに挿入したいのですが
追加と言う形になってしまいます。
どうすれば全部破棄した後、挿入出来るのでしょうか?
宜しくお願いします。
0995デフォルトの名無しさん
NGNG無理
0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。