■ VisualC++(MFC限定)相談室 5■

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:02/12/09 17:43
Emacみたいなコマンドで編集するメモ帳を作りたいのですが、
CEditViewを使った方がいいのでしょうか?
それとも自分でクラス作ったほうが早いですか?
C++&MFC始めたばっかでよくわからんのです。
アドバイスください。
>>952
オリジナルのViewクラスは結構めんどいよ。
使い始めたばかりなら、まずCEditViewでドキュメントービュー構造になれたほうがよさげ。
最近故あってSDKベースからMFCにやってきますた。

operator= が使えるCStringArrayを作りたいんですが、どう書けばよろしいでしょう?
STLとかATLは使えない環境でつ。
>>954
レスありがとうございます。
了解しました。
>>953
2ヶ月くらい前にね
>>955
普通に派生クラス作って operator= をインプリメントするのはダメなんでしょーか?
959デフォルトの名無しさん:02/12/11 18:42
VC+++MFCでhttpsサーバにアクセスするクライアントを作成する場合、
どのAPI、クラスを使えばよいのでしょうか?
WinInetやそのラッパークラスにはhttpsについての記述がありませんでした。
INTERNET_FLAG_SECURE
CString に char[256]とかを
=演算子で何度も追加するのはまずいですか?
CMapWordToObでメモリリーク起こさない方法ってどうすればいいんでしょう?
deleteすると、キーを挿入しているところで大量に漏れてると言われます。
VC6.0です。
>>962
ループで回してMapの要素を一つずつdeleteする。
新スレです。

■ VisualC++(MFC限定)相談室 MFC6.dll■
http://pc3.2ch.net/test/read.cgi/tech/1039607377/
>>963
それでも結果全く同じ。
ダンプを見ると、どうもキーのメモリが開放されてないようなんですがそんなことあるんですかね?
以下、削除部のソース

{
POSITIONpos;
WORDkey;
CObject*pa;

pos = ThStack_w.GetStartPosition();
while(pos != NULL) {
ThStack_w.GetNextAssoc(pos, key, (CObject*&)pa);
ThStack_w.RemoveKey(key);
}
}
>>965
SetAt する時にオブジェクトを new してるんでしょ?
↓でどう?

pos = ThStack_w.GetStartPosition();
while(pos != NULL) {
ThStack_w.GetNextAssoc(pos, key, (CObject*&)pa);
delete pa;
ThStack_w.RemoveKey(key);
}
>>966
ダメでつ。
一発目からAccess Violationが出ます。
delete pa のとこで。

といーますかPtrじゃなくてOb系なんで、削除は保証されてるはずなんですがねー。
マニュアルまたバグってる?
>>967
newしてねーだけだろ
ちなみに、MSDNがCMapWordToObの参考にしてくれって言ってる
CMapStringToObにはこうある
>CMapStringToOb オブジェクトを削除するか要素を削除すると、
>CString オブジェクトと CObject ポインタが削除されます。
>CObject ポインタが参照しているオブジェクトは破棄されません。
Mapの要素としてのCObject*は破棄されるが、
その先のオブジェクトは破棄しないということだな。
CMapWordToObの説明は
>その要素を削除すると、対応する CObject オブジェクトが削除されます。
ってあるが。
>>968
そんなことはない。

ThStack_w[para_w] = (CObject *)new CString(temp);

>>969
そう。
どっちを信じていいか小一時間悩んで、結局deleteできないなら後者だろ、と思った。
でも漏れ漏れ。どうなってんやら。
>>970
CStringはCObjectじゃないよ。
>>972
おお、それは気が付かなかった。
CStringArrayに替えたら解決しますた。
ダンケ。
>>973
CStringArrayでええんか?
CString*を保持するCMapWordToPtrの方が良いんじゃ?
975デフォルトの名無しさん:02/12/12 19:36
MediaPlayerのActiveXコントロールで、実行時にサイズ変更する方法を教えてください。
MoveWindowするとエラー出てしまいます。
CMediaPlayer2を見てもそれらしきものが見当たらないっす。
リストビューとツリービューの混ざったような物を作りたいのですが
どうすればよいのでしょうか。
こんな風にしたいのです↓

http://www.vector.co.jp/magazine/softnews/991006/images/n99100611b.gif
978デフォルトの名無しさん:02/12/13 05:22
スプリットウィンドウで分けて複数のビューを
表示してる場合にWM_KEYDOWNメッセージを
特定のビューで受けたい場合はどうしたらいいのでしょうか
どのビューでもOnKeyDownが動いてくれません
979978:02/12/13 06:11
すいません、どのビューでも動かないとかいてしまいましたが
一番左上のビューで動きました
2列に分割して左の列を2行に分割していて
左下のビューで受け取りたいのですがSetActivePaneとかしても
アクティブになってくれません
980978:02/12/13 06:20
すいません解決しました
ボタンにフォーカスあたってたのをなくしたら
OnKeyDown動いてくれました
ボタンにフォーカス当たったままじゃ
ビューがメッセージ受け取らないとは知りませんでした
981973:02/12/13 11:13
>>974
元々スレッド間通信に使おうと思ってたから、Arrayの方が都合が良い。
故にこれでオケー。
982978:02/12/13 11:14
続けて質問させてください
入力するキーによって
受け取るビューを変えたいのですが
どうしたらいいでしょうか

たとえば数字キーなら左のビュー
エンターキーなら右のビューといった感じです
新スレへ移動してくれ。

■ VisualC++(MFC限定)相談室 MFC6.dll■
http://pc3.2ch.net/test/read.cgi/tech/1039607377/

  |■\
   | ∀`) ダレモイナイ...
   | ⊂) ワショーイスルナラ イマノウチ
   | /


    ./■\
   ∩´∀`∩ ワショーイワショーイ
    ヽ   丿
    ( ヽノ
   し(_)



    /■\
   (´∀`∩) ワワワワワショーイ
   (つ  丿
   ( ヽノ
   し(_)
age
新スレ

■ VisualC++(MFC限定)相談室 6■
http://pc3.2ch.net/test/read.cgi/tech/1039854032/
真の新スレ

■ VisualC++(MFC限定)相談室 MFC6.dll■
http://pc3.2ch.net/test/read.cgi/tech/1039607377/
>>986
いい加減にそういう冬厨丸出しなことはやめてくれ
冬坊丸出し上げ
どっちが冬厨だか(藁
d
a
r
e
m
o
1000
torannoka
YO!
jyaorega1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。