[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 03/01 12:35 / Filesize : 186 KB / Number-of Response : 746
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

■MFC相談室 mfc19d.dll■



1 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 18:37:47 ]
Microsoft Foundation Classライブラリ専用スレです。

前スレ
■MFC相談室 mfc18d.dll■
pc11.2ch.net/test/read.cgi/tech/1185917008/

82 名前:74 mailto:sage [2008/05/25(日) 19:22:25 ]
>>77
レスありがとうございます。
形状的にはそうするのが一番形になるような気がします。

>>81
レスありがとうございます。
えっ?!コンボボックスの中身をツールバーにするのですか?
ちょっとイメージがつきません…。

83 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:31:31 ]
ttp://www.codeproject.com/KB/miscctrl/colour_picker.aspx
これ参考にすれば?

84 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:14:33 ]
>>82
ツールバーの中にコンボボックスがあるんだろ。


85 名前:74 mailto:sage [2008/05/25(日) 20:22:12 ]
>>83
レスありがとうございます。

おお、これです。コレがしたかったんです。ありがとうございます。
英語ばかりですが、サンプルコード読みながら何とか紐解いてみます。
サンプルプロジェクトコンパイルしたらエラーしますがorz...




86 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:24:42 ]
このサイト、Japanizeでちゃんと自動翻訳してくれるんだな・・・メニューくらいだけだけど

87 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:33:51 ]
JapanizeじゃなくJapaneseだろ!
…って書き込もうと思ったんだが、ググったらそういうソフトがあるのな。自動翻訳の。

88 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 14:13:22 ]
デバッグモードだと
_DEBUGが定義されてるように

MFCだと
定義されてるやつってありますか?

89 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 19:08:44 ]
_MFC_VER

90 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 01:54:21 ]
VC6、MFC、ダイアログベース

ダイアログ上にCStaticを配置して、そこにJPG画像を表示しています。
JPG表示領域に別のWindowが重なったりした場合に、それをどかしても
重なっていた部分だけ表示が消えた状態となってしまいます。

自分自身が最上位に来たときに再描画するようにすれば良いと思うのですが
何のMessageを捕まえればよいのでしょう?





91 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 06:43:05 ]
画像を設定した後、さっさとハンドルを破棄してしまっている予感。

92 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 08:44:12 ]
ダイアログベースならデフォルトで再描画あるじゃないか

93 名前:デフォルトの名無しさん mailto:sage [2008/05/27(火) 11:00:31 ]
OnPaint を理解してないと思われ

94 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 22:33:46 ]
2008SP1が出たら購入を考えているのですが、
タブMDIやリボンバーを実現するクラスの仕様や構成をご存じの方いますか?

95 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 09:35:55 ]
>>94
ttp://msdn.microsoft.com/en-us/library/bb982354.aspx
ふつーにMSDNライブラリでどーぞ

96 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 11:13:03 ]
Dialog::WindowProcがダイアログが非アクティブだと呼ばれないのですが、
非アクティブ時も処理したい場合、どのように書けばよいですか?

97 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 11:58:38 ]
メッセージが来てないだけだろ

98 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:19:42 ]
メッセージが来るようにしたい場合、どのように書けばよいですか?

99 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:26:08 ]
そもそもどんなイベントが欲しいんだ?

100 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 14:39:15 ]
DIJOYSTATE2.rgbButtons[]の状態を常に監視して、
ボタンが押されたら任意に設定したキーイベントを発生させたいんです。




101 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:27:22 ]
普通は非アクティブウインドウにキーイベントは来ない
できないこともないけどMFCとは関係ない

102 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:45:44 ]
MFCやWin32APIに関して初心者なんだけど、だれか助けてくれたりしないかな。

MFCでSDIアプリを作っている。CMainFrameのメンバにCDialog m_toolDlgを保持して、
モードレスで実体化させている。
やりたいことは、モードレスダイアログ m_toolDlg のあるボタンが押されたときに、CHogeViewの向けて
メッセージ(?)を飛ばしたいのだけど、どういう枠組みを用意してやって、どういうメソッドを使ってやればいいのか
わからない。

どうも体系的に知識が不十分なのは分かっているのだけど、今時MFCの資料が無くて困っている。
だれかアドバイスをくれないだろうか。

103 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 15:58:58 ]
CFrameWnd * pFrame = (CFrameWnd *)(AfxGetApp()->m_pMainWnd);
CView * pView = pFrame->GetActiveView();

あとはSendMessageするなりキャストして直接関数呼ぶなり好きにしろ。

104 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:12:07 ]
>>103

早速ありがとう。示してもらったとおりに SendMessage(WM_COMMAND, ID_XXX, 0) としたら、
Viewがうまく反応した。

感謝

105 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:14:05 ]
メッセージの受け方は、自動生成される他の関数を参考にしてみろ
WM_PAINTならOnPaint()みたいな感じで

106 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 16:20:19 ]
ユーザー定義メッセージ あたりでググるとよい。

107 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 21:40:12 ]
afx_msg LRESULT OnXXXXX(WPARAM wParam, LPARAM lParam);
 
ON_MESSAGE(WM_APP+n,OnXXXXX) とかだね

OnCommandとか直に呼ぶと、まずい場合もあるから↑書き方も覚えておくと良いかも

108 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 18:48:11 ]
アクションゲームの様な物を想定して、毎秒30フレームの画面更新を行いたいのだけど、MFCで書くにはどうすればいいのだろう?

もちろん、一番手軽なのはWM_TIMERで処理することだと思うけど、精度が低いので保留。

OnIdleをハンドリングして、中でtimeGetTime()を使って適切な時間をカウントしてやる方法も試してみたんだけど、こちらは常にCPUを100%使い切ってしまうのが厳しい。
実行している処理内容は大した負荷ではないはずなのに、CPUを使い切ってしまうとユーザがいやがるし、美しくない。

できれば、この両者の間ぐらいが方法が欲しい。つまり、まずまず精度が高くて、CPU使用率がむやみに100%に振り切らない方法。

自分はMFCやWin32APIの初心者なんだけど、何かいい企てや情報はないだろうか?

109 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:07:10 ]
OnIdle()でハンドリングして、時間を待っている間にSleep(1)を入れたらCPUが100%になることが無くなった。これで解決かも。

参考
ttp://orangeknowledge.jpn.org/tips/game002.html

110 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:08:32 ]
別スレッドでSleepやWaitableTimerで1/30毎にSendMessageするとか。



111 名前:デフォルトの名無しさん [2008/06/04(水) 22:21:07 ]
質問だけど、MSDNにはCFileのwriteはバッファリングしないって
書いてあったんですけどCFileのwriteとfwriteってどちらが速いですか?
また、それ以外にも速いファイルライト関数ってありますか?


112 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:34:01 ]
自分で試して違いがわからなかったら気にする必要ないだろ

113 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:35:54 ]
速度程度なら、ループさせてGetTickCount()あたりでも計測すればいい

114 名前:デフォルトの名無しさん [2008/06/04(水) 23:41:51 ]
質問です。

WindowsXPでVS2005なんですけど、CFileDialog等のコモンダイアログって
リソース上の文字列(“開く”とか)は実行環境に合わせ勝手にローカライズ
されませんよね?

環境に応じて表示言語を変えたい(少なくとも日本語←→英語の切り替え)を
やりたいんですけど、リソースIDとかがわからず、どこをどう触ればいいのか
途方に暮れてしまってるんですが、何かセオリーってありますか?

115 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:46:07 ]
ローカライズの切り替えは知らないけど、リソースIDはふられていたはず
ダイアログ自体書き換えれるし

116 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:12:34 ]
数年ぶりにMFCに戻ってきたんだけど
いつのまにか、テンプレート クラス用のメッセージ マップなんて
作られたんだね。結構使われてるのかな?

117 名前:114 mailto:sage [2008/06/05(木) 00:17:00 ]
>115
レスありがとうございます。
ちなみにコモンダイアログのリソースIDはどこで確認すればいいのでしょうか?
目ぼしいドキュメントが見つからなくて、てっきりリソースIDは無いものだとばかり・・・

118 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:20:35 ]
>>112,113
わかりました。結局あなた達も知らないのですね。

>速度程度なら、ループさせてGetTickCount()あたりでも計測すればいい
そんなしょぼい精度の計測はせず、QueryPerformanceCounter()で計測します。

119 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 00:31:41 ]
なんという恥ずかしいレス

120 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 07:35:44 ]
MFCは一定間隔の更新に弱く、MFCの表示周りの更新を行うと内部で勝手にウエイトが入るんだよな。
別スレとか方法としてはいくつもあるけど正確な更新をするのであればMFCベースでやらないほうがいい。



121 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 09:20:58 ]
動画再生ぐらい余裕でできるだろ

122 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 16:27:10 ]
>>117
Dlgs.h の中の edt1 とかの値が使われている。

123 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 17:35:11 ]
>>118
fpsの調節をするためにビジーループでQueryPerformanceCounterを呼び出していると、
環境によっては数秒に一度関数からしばらく戻って来ないでフリーズする現象が発生します。


 



124 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 20:22:53 ]
動画の再生なんて、アバウトでいいのよ
30 fps をきっちり正確に表示する必要は全くない
人間の目なんて、数コマ落ちしようと時間間隔が多少
ずれてもわからんのよ
よって、秒単位に適当に切り捨てればよい


125 名前:デフォルトの名無しさん [2008/06/05(木) 20:54:18 ]
MFCの中でオーバーライドされてる関数の元の関数を使いたいんですが、どうやるんでしょうか?
LRESULT SendMessage( HWND, WPARAM , WPARAM, LPARAM );
これを使いたいんですが、HWNDがない方になっちゃいます。
::つけるようだった気がするんですが違うみたいでした。

126 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:08:00 ]
あってると思うけどな。

127 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:01:08 ]
>>125 それはオーバーライドとは言わない ただのAPIをCWndオブジェクトに対してのみ便利メンバ関数として用意してるだけ

128 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:05:00 ]
頭に::をつけるというのは、グローバルな関数や変数を指定してるだけだからな
頭にクラス名がついていない代わりだ
ていうか、自動補完が動いてないだけで、書けばコンパイルはとおるだろ?

129 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:29:32 ]
とおらないんじゃないだろうか。

130 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:39:29 ]
SDI(ドキュメント無し)のMFCアプリで、Viewウィンドウサイズを指定(800*600)して起動させたいのだけど、やり方がさっぱり分からん。

やりたいことは、指定の画像(800*600)をビューでピッタリ描写すること。

いや、CMainFrame::PreCreateWindow()でcs.cx, cs.cyを設定すればいいのは分かるんだけど、ここに800, 600と入れるとウィンドウサイズが800,600になって、Viewの描写領域のサイズはメニューやツールバーに削られた小さな領域になってしまう。

メニューやツールバーの領域をあらかじめ計算して大きめのウィンドウサイズを指定する方法があるけど、それはあまりにスマートじゃないので、何かベンツのやり方はないだろうか?




131 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 22:43:45 ]
GetMatrixHogehoge(名前忘れた)で、タイトルバーのサイズとかをあらかじめ取得しておいて、
そいつらの高さや幅をあらかじめ加算しておけば?
メニューやステータスバーのサイズはあらかじめわかるだろうし

132 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 23:10:21 ]
メニューが二段とかの例外を気にしないならAdjustWindowRect

133 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 00:14:28 ]
>>131, 132

情報ありがとう。教えてもらった情報を試してからまた報告に来ます。

134 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 01:51:10 ]
そのテのはネットで結構あった気がする

135 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 13:47:23 ]
AdjustWindowRectを試してみたけど、ツールバーとステータスバーの領域は考慮してくれなくて、
その部分は自前で算出してやらなきゃいけないみたい。

136 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:12:33 ]
MFCの勉強をしようと思ったら何からはじめたらいいの?

WinAPIではガリガリ組めるレベルだ。

137 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:17:38 ]
Win32がそのくらいのレベルあるなら、かなり楽かもなー
逆に隠ぺいされすぎて、ムカつくかもしれないけどw

とりあえず、MSが配布してるサンプル読んで理解して、あとは適当に自力で作ってみたらいいんじゃないかな

138 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:18:34 ]
まずはダイアログアプリから始めて、基本的な GUI の
実装を一通り経験すべし
その後にドキュメント/ビュー に進むがよい


139 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:19:18 ]
>>137

隠蔽されすぎてるのかw

わかった取りあえず、サンプル読みまくるよ。

ところで、MFC自体のソースって公開されてるの?


140 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:22:04 ]
関数名がそのままだけど、第1引数のハンドルとかが、クラスに隠蔽されていて、なかったりする
たしかに、先にダイアログから手をつけるべきだな
サンプルは公式にあったと思う



141 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:36:12 ]
個々のクラスで見ると、素直にクラスで包んでるだけだよ。
後はそれにアプリケーションレベルの仕組み(Doc/Viewとか)があるくらい。
コマンドメッセージとかはちょっと複雑なルート辿るけどね。

142 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 14:44:17 ]
みんなありがとう。

ダイアログから読んでいろいろやってみるよ。

143 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 10:57:47 ]
確かに、目の前にハンドルがあるとついついクラスのメンバ関数じゃなくてAPI呼びたくなるよな。
ハンドルを意識する必要が全くなければいいんだけどね。

144 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:02:25 ]
VS2005のMFCで作ったexeファイルが
別のPCで起動させた際に不正なファイルとでて起動できませんでした
プログラムを組んだPCではきちんと起動するのですが原因がわかりません
原因についてわかる方、教えていただけませんか

PCのOSは両方ともWinXP Pro SP2です
VS2005は片方にしか入っていません
よろしくお願いいたします

145 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:29:46 ]
インストーラ作れよ

146 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:40:41 ]
>>145
作り方教えてください。

147 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:44:04 ]
ヘルプを見よ

148 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:46:54 ]
これをダウンロードして実行しろ

www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=ja

149 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:29:14 ]
>>144
ttp://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200606/06060025.txt
VS2005にもスタティックリンク出来ないグレードあるんだっけ?

150 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 01:37:33 ]
>>149
ありがとうございます。
そこに書いてあるように「マルチスレッド MT」に変えると
ビルドする際に

c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxver_.h(77) :
fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds

といったエラーがでるようになってしまいました
解決方法がわかれば教えていただけませんか



151 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 03:25:31 ]
>>150
>解決方法がわかれば教えていただけませんか

>Please use the /MD switch for _AFXDLL builds

152 名前:デフォルトの名無しさん [2008/06/12(木) 00:11:07 ]
VS2005でStdioFile::ReadString()関数を引数をCString参照で使っているんだけど、
何行かread(大体1000行ぐらい)していると、stringのバッファサイズが何とかという
実行時エラーが出てしまいます。何か対策はありませんでしょうか。

153 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 01:17:16 ]
何とかって何?

154 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 02:24:33 ]
改行文字で止まるのに1000行とはなんぞや

155 名前:152 mailto:sage [2008/06/12(木) 07:05:45 ]
>>153 154

今ソース、環境が手元に無いので詳細は今日帰宅したらまた書きます。

156 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 09:46:49 ]
CStringの上限は2GBぐらいだろ

157 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 14:47:45 ]
m_timerID = SetTimer;

OnTimerでInvalidate(FALSE);

アニメが終わったらKillTimer(m_timerID);

ピクチャーコントロールにビットマップを表示してるダイアログで
これでアニメーションをしてると、
タイマー開始するたびに4Kずつ使用メモリが増えていきます
なぜでしょうか

158 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 15:31:49 ]
知るかよ
お前んとこのバグに決まってるだろ

159 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:36:16 ]
>>157
m_timerIDって解放しなくてよかったっけ。
時計の電池を抜いて止めても時計の本体は残っている状態のような。

160 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 18:43:37 ]
>159はキチガイだから無視で



161 名前:デフォルトの名無しさん [2008/06/12(木) 22:29:14 ]
CStaticにCBitmapの画像を貼り付けたいのですが、リソースからは上手くいっても
メモリ上からは失敗(何も描画されない)します。
どうするのが適切なのか、教えてください。


//// リソース読み込み
CBitmap m_bmp; // メンバ変数

m_bmp.LoadBitmap(IDB_BITMAP);

CStatic *pPicture = (CStatic *)GetDlgItem(IDC_STATIC_IMAGE);
pPicture->SetBitmap((HBITMAP)m_bmp);


//// メモリ読み込み
CBitmap m_bmp; // メンバ変数
BYTE m_buf[300]; // メンバ変数 bmpの各ピクセルの色データ配列

m_bmp.CreateBitmap(10, 10, 1, 24, m_buf);

CStatic *pPicture = (CStatic *)GetDlgItem(IDC_STATIC_IMAGE);
pPicture->SetBitmap((HBITMAP)m_bmp);

162 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:51:05 ]
水平方向のバイト数が4の倍数じゃないから?
m_buf[(10*24/8+7)&~3*10];


163 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:56:00 ]
>>162
元のは横240*縦240*3バイトだったのを編集したときに4バイトアライメントを失念してました。
すみません。
CreateBitmapでいけることはいけるんでしょうか?

164 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:02:12 ]
m_bmpのデストラクタで破棄されたらそれまで。描画されなくて当然。
Windowsのハンドルは参照カウンタで管理されているわけではないので注意しる。

165 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 00:03:10 ]
その辺まともに理解してないと、メモリリークとかもやらかしそうだな

166 名前:161 mailto:sage [2008/06/13(金) 19:45:30 ]
自己解決。
リソース読みのm_bmpを使い回して、32bppに変換したデータをSetBitmapBitsすることで表示されるようになった。

167 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 21:36:42 ]
どのへんが自己?w

168 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:22:12 ]
あえてWin16時代の名残りであるSetBitmapBitsを使うところが渋いな。
まあ、直接イメージを弄るなら普通はCreateDIBSectionを使う。
MFCならCImageだな。

169 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:20:40 ]
MFC に CImage なんかあるかよ


170 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:28:42 ]
あるある



171 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:57:23 ]
VC++6.0で時間が止まってる人なんだろうな

172 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:15:25 ]
MFC じゃなくて ATL だろが

173 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:29:08 ]
CImage の中身は GDI+


174 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:35:47 ]
GDI の BitBlt はハードウェアを使うので早い
GDI+ の BitBlt はソフトウェアのみで処理するので遅い



175 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:29:18 ]
Vistaではどちらもソフトウェアになるけどな

176 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:31:13 ]
そういえばGDI専用のスレってないんだな
この手の話するならここかWin32になるのか?

177 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 12:48:15 ]
FTP転送経過情報(転送サイズ)がわかるFTPクライアントを作成したいです。
FTP転送状況を取得するにはOnStatusCallbackをオーバーライド
する、とのことだったのでマニュアルを見たのですが、
▼▼▼
OnStatusCallback
 (DWORD dwContext,
  DWORD dwInternetStatus,
  LPVOID lpvStatusInformation,
  DWORD dwStatusInformationLength)

dwInternetStatus
コールバックの理由を示すステータス コード。指定できる値については、後の「解説」を参照してください。

lpvStatusInformation
このコールバックに関する情報を格納しているバッファへのポインタ。

▲▲▲

上記の引数によりファイルの転送済みサイズとかが取得できるように
なるのかなと思ったのですが、マニュアルにはそれらしき記述はありません
でした。

OnStatusCallbackの中でどのような処理をすれば転送済みファイルサイズとか
取得できるのでしょうか。

ご教示のほど、よろしくお願いします。

178 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 14:01:26 ]
>上記の引数によりファイルの転送済みサイズとかが取得できるように
>なるのかなと思ったのですが

なんでそんなこと思ったの?

179 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:03:42 ]
FTP転送状況を取得するには、
OnStatusCallbackをオーバーライドして、FTP転送状況を提供
してやるってことじゃねえの?

でなきゃ、オーバーライドする意味ないし。


180 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 15:21:41 ]
転送状況を取得したいのは判る。MSDNにも取得できると書いてある。
しかし、転送済みサイズが取得できるとはどこにも書いてないし、そもそもなんでそんな発想できるのかと。
# 要は、私もOnStatusCallbackで転送済みサイズが取得*できない*とは確認していないのだけどね。



181 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:21:11 ]
転送状況のステータスはとれても転送済みサイズは取れないってことですかね。
FTPコマンドとかフリーのFTPソフトで転送経過(%)が表示されているのってどうやってるんでしょうね。

182 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:32:10 ]
適当なバイト単位で読む






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

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<186KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef