トップページ⇒tech
1001コメント346KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001MFCNGNG
:: 「こんなことをするにはどうすれば良い?」というとき ::
※MSDNライブラリをよく読む。
※関連すると思われるクラスのメンバ関数を探してみる。
※そのクラスの基本クラスのメンバ関数も探してみる。
※Win32APIからも探してみる。
※WEB検索。

※たいていの問題は>>2-3のサイト/書籍で探せば解決。
0002デフォルトの名無しさんNGNG
:: 前スレ ::
まずはスレをさかのぼってキーワード検索してみよう。
■ VisualC++(MFC限定)相談室 2■
 http://pc.2ch.net/test/read.cgi/tech/1008031675/

■ VisualC++(MFC限定)相談室 3■
 http://pc.2ch.net/test/read.cgi/tech/1014057520/

:: 国内サイト ::
VC++ML
 ttp://mfc.acty-net.ne.jp/ml/mfc/
 WEBから過去ログ検索できるので便利。
Visual C Forum
 ttp://forums.belution.com/ja/vc/
 アーカイブ検索やTechTipsあり。

:: 海外サイト ::
CodeGuru
 ttp://www.codeguru.com/
 便利なクラスやTips、サンプルが満載。
CodeProject
 ttp://www.codeproject.com/
 便利なクラスやTips、サンプルが満載。
0003デフォルトの名無しさんNGNG
:: 書籍 ::
MFCによるWindowsプログラミング改訂新版
 MFCのバイブルと呼ばれている本。
 基本的なことから広範囲にわたって解説されている。
 ただしデータベースやネットワーク関連クラスについては
 触れられていない。

VisualC++5 パワフルテクニック大全集
 テクニック集。書籍名のとおり内容は少し古い。

ワンポイント・レッスン 最新Windowsプログラミングテクニック
 テクニック集。書籍名のわりに内容は少し古い。

Best of MSDN magazine 上・下巻
 ワンポイント〜の続編。

WinSock2.0プログラミング
 MFCの本では無いが、ソケット関連クラス(CAsyncSocket、CSocket)
 について書かれている数少ない書籍の中の一つ。


00041NGNG
一応良く使うサイトと自分の持っている書籍などから
独断と偏見で参考サイト/書籍を挙げておきました。
これからMFC関連の新書は出ないんでしょうかね……
0005デフォルトの名無しさんNGNG
>>2 についてだけど、海外のサイトなのに、なぜhを抜いたりするの?
0006デフォルトの名無しさんNGNG
>>5
国内と海外を区別する理由は?
0007デフォルトの名無しさんNGNG
そもそも、何のためのimeなのか。
0008デフォルトの名無しさんNGNG
MFCの今の状況は斜陽なのかなー?
0009デフォルトの名無しさんNGNG
次々と新しいもんがでますから
0010デフォルトの名無しさんNGNG
ツールバーの特定のボタンに動的に色をつけたいのですが、どうすればよいでしょうか?
イメージとしては、ツールバーにWordのような文字色を変更するためのボタンを作り、
色を選択するとそのボタンの色も選択した色で着色したいのです。
0011デフォルトの名無しさんNGNG
相談よろしくお願いします。
サブクラス化したコントロールをメンバに持つ親ウィンドゥがあり、
それら両方に同じメッセージに反応するハンドラを実装した場合、
試してみると親ウィンドゥのハンドラのみが呼び出されます。
これを、サブクラス化されたコントロールのハンドラも呼び出されるように
する方法ってありますでしょうか?
当然、親のハンドラ内で m_MyControl.OnXXX() を呼び出したり、
メッセージを親の WindowProc() 内で処理するようにすれば実装できますが、
これでは保守性が悪いので、スマートな方法を模索しております。
0012デフォルトの名無しさんNGNG
>>11
ON_CONTROL_REFLECT_EXマクロを使って、ハンドラ内でFALSEを返す
のはどうかな?
これだと子→親へとメッセージがルーティングされる。
0013デフォルトの名無しさんNGNG
>>12 様
11です。
すばやい回答ありがとうございます。
まさしく、ご指摘どおりの方法で希望の動作を実現することができました。
ありがとうございました。
これで、親ウィンドゥでは通常の方法でメッセージハンドラを追加するだけで
両方のハンドラを呼び出すことができるようになりました。
0014 NGNG
ダイアログのサイズ変更時にボタン等の位置変更はどこでやればよいのでしょうか。
Button.MoveWindow()で動かしているのですが、
WM_SIZEを拾うOnSize()でやるとコンパイルは通っても実行時に止まってしまいます。
OnPaint()では縮小のみの場合書き直されないようで・・。
0015デフォルトの名無しさんNGNG
実行時に止まってしまうとかはデバッグして具体的にどこで止まってるなど
確認したほうがいいよ。その方が回答も得られやすいし。
この場合、たぶん始めにOnSizeが呼ばれたときはまだコントロールが
無いから、Button.MoveWindowのButtonが無いって起こられてるんだと思う。
OnSize内で
if(Button){
 Button.MoveWindow(・・・);
}
としてみては。
0016 NGNG
上記で動かせました。
起動時にもOnSizeが呼び出されるんですね。
ありがとうございました。
0017デフォルトの名無しさんNGNG
プロパティシートとタブコントロールについての相談です。
プロパティシートにプロパティページを複数張り付けて表示しています。
そのうちのプロパティシートで最初にAddされたページ(ページのINDEXは0だと思う)
のタブ部分にフォーカスというか、カーソルというか、クリック後のように
文字が点線で囲まれたような状態にしたいんです。
調べたところCTabCtrl::SetCurFocusを使うのではないかと思い、
ページのOnInitDialogでやってみたのですが使い方を間違えているのか、
うまくいきませんでした。何かヒントなどあったら教えてください!お願いします。
0018デフォルトの名無しさんNGNG
OnInitDialog()がTRUE返してないか?
0019デフォルトの名無しさんNGNG
TRUEになってました・・・でも、FALSEにしてもやっぱりだめみたいです。

0020デフォルトの名無しさんNGNG
デフォルトで自動的にPage内のコントロールに
フォーカスが移ってしまうみたいだね。
これを断ち切ればタブにフォーカスがセットされたままになると
思うのだけれど・・・どうしたものか。
0021デフォルトの名無しさんNGNG
タブ.SetFocus();
タブ.SetCurFocus( 1 );
でだめならPostMessageするしかないかな。
0022デフォルトの名無しさんNGNG
>21
そうですか・・・ありがとうございました。PostMessageですね。
やってみようと思います。
0023デフォルトの名無しさんNGNG
CSingleDocTemplateで表示されるメニューの有効/無効などを変更したり、
キャプションを変更するには
どうしたらいいでしょうか?
0024デフォルトの名無しさんNGNG
一生懸命勉強してもMFCなどもう時代遅れ。
ホントいい加減にして欲しいよなぁ
MFCが行き詰まったとか対応できなくなったとか、そんなんあるか?
0025デフォルトの名無しさんNGNG
23
何をしたいか書いてないから断定できないが・・・
動的にドキュメントテンプレートのリソースが交換でないし
AfxGetMainWnd()->SetWindowText ( "My Own Title" );
SetMenu();or UPDATE_COMMAND_UIのCCmdUIを使うしかなと思う。
0026デフォルトの名無しさんNGNG
MFCを使えばWin32APIを生で使った時よりも楽になりますか?
0027デフォルトの名無しさんNGNG
MFC AppWizardとかClassWizardとか使ってフレームワークの範囲の操作なら全然
楽です。フレームワークの範囲ならC++の知識も大して要りません。
(テストプロジェクトを作って見ればどれだけ楽か判ります)
それ以外は全く同じです。
0028デフォルトの名無しさんNGNG
ありがとうざいましたm(..;)m
0029デフォルトの名無しさんNGNG
変形したダイアログウィンドウはどうやって作るんですか?
丸型のウィンドウとか、六角形だとか、もしくは複雑な形のウィンドウです。
0030デフォルトの名無しさんNGNG
>>29
SetWindowRgn
0031デフォルトの名無しさんNGNG
有難うございます。
0032デフォルトの名無しさんNGNG
>26
大して楽になりません。結局Win32APIとMFCの関係を知らないと
困ること多し
0033デフォルトの名無しさんNGNG
CEditを全選択状態にしたいのですが、
o_edit_control.SetSel(0, -1, false);
UpdateData(false);
これでコンパイルは通るんですが、全選択がされません。
第2引数に5などの数を入れたり、第3をtrueにしてもダメ。
何か他に設定とかありますか?
0034デフォルトの名無しさんNGNG
なんでUpdateData(false); してんの?
なんでUpdateData(false); してんの?
なんでUpdateData(false); してんの?
0035デフォルトの名無しさんNGNG
ツールバーにテキストボックスを入れたりするのは難しいのでしょうか?
出来ればスマートな方法をお教え頂きたいのですが。
0036デフォルトの名無しさんNGNG
>>35
ツールバーの代わりに ReBar を使ってしまうのがスマートかと。
0037デフォルトの名無しさんNGNG
CToolBarを継承したクラスの中にCEditを持って、OnCreateをオーバーライドするとか。
0038デフォルトの名無しさんNGNG
>>35
セパレータの幅を指定することが出来るので広めのセパレータを作成し、
その領域にEditを貼り付ける。
0039デフォルトの名無しさんNGNG
MFCでTreeViewを作成したのですが、一番上の階層にもボタンが表示されてしまいます。
表示しないようにするには、どうしたらいいですか?
0040デフォルトの名無しさんNGNG
windowのstyleから TVS_LINESATROOT を削除
004135NGNG
皆さんサンクスです。
教わったキーワードを元に色々調べてみます。
ありがとうございました m(_ _)m
0042デフォルトの名無しさんNGNG
アクティブビューってどうやって取得すればええんでしょう?
0043デフォルトの名無しさんNGNG
google検索
アクティブビューの取得
0044デフォルトの名無しさんNGNG
CListViewをレポート形式で使ってます。
ビュークラスのOnUpdate()中でサブアイテムを追加しようとすると失敗します。
何か足りないんでしょうか?こんな感じ。
void CPageNumerView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
CListCtrl& listCtrl=GetListCtrl();
listCtrl.DeleteAllItems();
CPageNumerDoc* pDoc = GetDocument();
LV_ITEM listitem;
for(int i=0; i < pDoc->m_PageNo; i++){
int iActualItem;
listitem.mask = LVIF_TEXT;
listitem.iItem = i;
listitem.iSubItem=0;
listitem.pszText=_T("サブアイテム番号0は追加成功");
iActualItem=listCtrl.InsertItem(&listitem);
listitem.iItem = iActualItem;
listitem.mask = LVIF_TEXT;
listitem.iSubItem=3; // ここに0を指定すると正常動作
listitem.pszText=_T("追加されないよー");
      listCtrl.SetItem(&listitem);
}
}
ちなみに何故か同じ処理をOnInitialUpdate()で行うとちゃんと動きます…。
004542NGNG
1件しかヒットしねえじゃんと思ってたら答えでした。
ありがとう。氏んでくる。
004644NGNG
自前で解決しました。ども。
0047デフォルトの名無しさんNGNG
>>46
いいえ、どういたしまして。
0048デフォルトの名無しさんNGNG
TreeViewの+ボタンが押されて、ツリーが展開されるのを判断するにはどうしたらいいですか?
TVN_ITEMEXPANDINGを捕まえれば良いような気もしますが、これって展開か縮小かどっちか判断できませんよね?
004948NGNG
すみません、よく調べたらactionメンバで取得できました。
0050デフォルトの名無しさんNGNG
めちゃくちゃ遅レスだけど
前スレ881のPtInRegionだけど解決したので一応ご報告

If (rgn.PtInRegion(point) == TRUE)

これを
If (rgn.PtInRegion(point) != FALSE)

に変えたら直りました。
こんな落とし穴に1週間悩むなんて....鬱
0051デフォルトの名無しさんNGNG
最近のこのスレの流行は…「自分で解決」。
ま、人に話してると分かっちゃうってのは実際よくあるけど。
0052デフォルトの名無しさんNGNG
話すために問題を整理しているうちに..てやつだな。
よい傾向ではないか?
0053デフォルトの名無しさんNGNG
プロパティーシートを作成して,
ページ1(クラスMyPage1)にEditBoxを置いています.
そのEditboxの値を,
CMyDlgクラス(始めに作成したクラス)のOn_Button()内で使いたいのですが.
クラスが違う時はどのようにEditboxの中身を参照すればいいのでしょうか?
0054デフォルトの名無しさんNGNG
EditBoxにClassWizardでCString変数を割り当てておくと
public宣言されるので外から参照できます。
0055デフォルトの名無しさんNGNG
>>50
BOOL だから安心したんだろうけど、MSDN はちゃんと読むもんだよ。

BOOL PtInRegion(HRGN hrgn, int X, int Y);
戻り値
点がリージョンの内側に含まれていたときは、0 以外の値が返ります。
点がリージョンの内側に含まれていなかったときは、0 が返ります。

TRUE が返るとは一言も書いてない。そもそも C 言語で...

if(xxx == TRUE){...

とかくのはどうかと思う。真偽しか返ってこないとわかっているなら...

if(xxx){...

と書いたほうが良いと思う。(まあ、個人的見解だけどね。)
0056デフォルトの名無しさんNGNG
>>55
漏れは前者の方が好きだが。分かり易くて良いよ。== TRUE
0057デフォルトの名無しさんNGNG
==TRUEはやめておいたほうがいいだろ・・・
005855NGNG
>>56
まあ、>>55 にも書いたが、個人的見解が色々ありそうなところではある。
ただ、>>50, >>57 の通り == TRUE は、色々危ないし != FALSE
と書く余計わかりにくくなると思うが、どうよ ?
0059デフォルトの名無しさんNGNG
ビットマップファイルを読み込むくらい簡単にJPEGファイルを読み込んで表示する方法ありませんか?
0060デフォルトの名無しさんNGNG
混乱の元だから==TRUEはやめたほうがいい。
BOOLはboolじゃないんだから。
0061デフォルトの名無しさんNGNG
「0かそれ以外」と仕様に明記してあるのに
「1かそれ以外」で判定するのはやめてくだちい。
0062デフォルトの名無しさんNGNG
>>59
OleLoadPicture。これ最強。
0063デフォルトの名無しさんNGNG
CScrollViewにCEditを配置したいんですけど、
CEditにいったんフォーカスを移してしまうと、ScrollViewをクリックしても
KILLFOCUSされないんですよね。
これ、何か回避方法はあるのでしょうか。要はScrollView上にフリーに
文字列を書いて行くようなアプリを作りたいのですが。
0064デフォルトの名無しさんNGNG
>>63
ViewにEditって貼り付けるって、その考え方おかしくないか?
あり得ないと思うが。
006563NGNG
>>64
そですか?表現が悪いのかなぁ。Winプログラミング初めてなもんで。
フォームビューにエディットボックスを貼り付けるのは普通にやりますよね。
スクロールビューにも貼り付けることは出来たんですけど、
(そもそも、貼り付けるって言う表現は適切なのかな・・・)
編集状態から抜けるためには、ビューのところをクリックしてもだめなんですよね。
0066デフォルトの名無しさんNGNG
>>64ありえるだろ、いくらでも
0067デフォルトの名無しさんNGNG
>>65
ウィンドウはクリックしても自動的にフォーカスは受け取ってくれないんじゃなかったっけ?
OnLButtonUpでSetFocusじゃないかな?
0068デフォルトの名無しさんNGNG
ダイアログの動作
CView →CFormView(Dialog)→CEdit

ビューの動作
CView →CCtrlView→CEditView(Edit)

0069デフォルトの名無しさんNGNG
>>68
何が言いたいのか解らないのですが・・・
0070デフォルトの名無しさんNGNG
>>67
解決しました。ありがとうございました。
OnLButtonDownじゃ駄目なんですね。なぜなんでしょう。まだ精進が足らんな。
0071デフォルトの名無しさんNGNG
CFileDialogでファイル名を複数取得すると、
謎な順番でファイル名が返ってきますけど、
アルファベット順に受け取りたい、時は、
どうすれば良いでしょう?
0072デフォルトの名無しさんNGNG
>>71 自力でソートするとか。
0073 NGNG
CTreeCtrlに構造体やオブジェクトを登録ってできますか?
ツリーの選択されたノードに登録されているオブジェクトを取得ってしたいのですが。
0074デフォルトの名無しさんNGNG
SetItemData
0075デフォルトの名無しさんNGNG
現在、IEへD&DでファイルをアップロードするActiveXをVCで作ろうと考えています。
http://www.ne.jp/asahi/hishidama/home/tech/vcpp/dropfile.htmlをサンプルに、
VC6++でMFC ActiveX ControlWizardでEDITを基底クラスにして、DragAcceptFiles()と DragQueryFileでDropを受け取るコンポーネントを作成し、ActiveX Control Test Container で実行したところ、問題なくエクスプローラからファイルをDropすることができました。
しかし、HTMLに貼り付けIE上から同じことをしようとしたところ、このコンポーネントはDropを受け 取ることができませんでした。
もうひとつこのコンポーネントからDialogを開き、それを「ドラッグドロップを許可」で受け取れるよ うにして実験してみても結果はおなじでした。

IEのセキュリティ上の問題なのかとも考えていますが、そういう資料がみつかりません。
0076デフォルトの名無しさんNGNG
SDIアプリでシリアライズするときに、ファイルの形式が旧バージョンと
変わってるときはおまえらどうしてますか?
 1.旧バージョンのファイルと互換性をなくす
   (このことをReadme.txtなどでユーザに通知)
 2.ファイルの先頭にバージョンを表すコードを埋め、
   読み込み時にそのコードでファイル形式を場合分け
 3.シリアライズ時にスキーマ番号でファイル形式を場合分け

実は3でやろうと思ったらスキーマ番号が反映されなくて困った。
GetObjectSchema()で番号を取得しても4294967295という変な数字しか
返ってこないのです。
0077デフォルトの名無しさんNGNG
>>76 うちは2やね。ところで実はSetObjectSchemaしてないとか言わんといてくれよ。
0078デフォルトの名無しさんNGNG
おそらくとてつもなく初心者質問ですが教えてください。
今度はいった会社にVC6.0があります。ソフト屋でないので
誰も使っていません。もちろんMSDNには入っていません。

その古いVC6.0でWin2000命令のColorRGBtoHSLが使えません
おそらくダウンロードサイトいって落としてくれば良いと
思うのですが該当するファイルがわかりませんでした
VCサービスパック5は落として当てていますがダメのようです

前の会社ではVC6.0 Win2000サービスパック(名前うろおぼえ)
というCDがあったのでそれとは思うのですが・・・・

よろしくお願いします
0079デフォルトの名無しさんNGNG
76
4294967295==0xfffffffだからオブジェクトのバージョン不定とおもわれます。
CXXXDocクラスなんかはDECLER/IMPLEMNT_SERIALしてもクラス情報をファイルに
書き込まないから必ずオブジェクトのバージョン不定になります。

0080デフォルトの名無しさんNGNG
>>79
てことはCDocumentの派生クラス(つまりAppWizardで生成されるもの)
ではスキーマ番号によるバージョン管理はできないということですか??
0081デフォルトの名無しさんNGNG
80
何故ドキュメントやビューの子クラスのバージョンがー1になるかは知りません。ですが
ar.SerializeClass()でクラスの情報を強制的に読み書きすればドキュメントクラスも
バージョン管理ができます。(MSDNアンドキュメンテッドです)
そもそもファイルのバージョンという概念がないですから(クラスのバージョンと
いう概念しかない)ファイルバージョンクラスを作って管理するのが正しいやり
かたかもしれません。

IMPLEMENT_SERIAL(CMyDoc, CDocument, VERSIONABLE_SCHEMA|100)//Ver1.00

void CMyDoc::Serialize(CArchive& ar)
{
ar.SerializeClass( RUNTIME_CLASS(CMyDoc) );//親でなく自分のクラス名
if (ar.IsStoring()) {
ar << m_pObject;
} else {
UINT nVersion = ar.GetObjectSchema( );
ar >> m_pObject;
}
}
0082 NGNG
とりあえずVC++6.0で簡単なソフト作りますた。
当然マイPC(Win98)では稼動するわけだけど
これってどのマシンで動くの?

VBの場合ってVBランタイムってのが入ってないとだめじゃん。
他のPCで動かす場合でVC++が入ってない場合
VCで作ったプログラムもこのようなVCランタイムみたいなのが
必要なの?
ちなみに95で起動エラーおこしました。
0083デフォルトの名無しさんNGNG
MFC限定
0084デフォルトの名無しさんNGNG
MFC42.DLLとか言うのが必要
もしくわスタティックリンくさす。



とよく確かめもせず答えてみる
0085デフォルトの名無しさんNGNG
>>82
スマソ向こうに書き込んでた。
http://pc.2ch.net/test/read.cgi/tech/1022402165/720
008682NGNG
>>84
>>85
いまいちわからんけど、とにかくありがとう。

えーっとVC++が入っているPCはDLLがはいっていて
普通に作ったデバッグフォルダの中にある完成品単独で動くんだよね。
サブマシンWin98で作ったものがメインマシンXP(VC++インストールしてある)
で単独で動きました。
ただ大学のWin95のVCはいっていないマシンで動きませんでした。
このMFCDLLってのは通常は入っていないものなの?
えーっとスタティックリンクってのもそれっぽいエラーでました
そこをなんとかすれば動きそうなんですけど。
>>85さんのが答えなんだろうけどちょっとわかんないです。
つまりどうしたらいいのでしょうか。バカですいませんです。
0087デフォルトの名無しさんNGNG
VC++6Pro以上でコンパイルしたならWin95でmy.exeが単独で動くはず。
(VC++.net standard 以上と思う)

スタティックリンクのオプションが通っていて、Win32 Releseになってる
の確認してもうリビルドしてみたら。(my.exeはreleaseのしたにある)

もしかしたらスタテックライブラリが(コンパイルマシンに)インストールされて
ないかもしれないからその時は、ライブラリをインストールするか、
他のWin95or98機からMFC42.DLLをそのWin95機のwindows\systemフォルダー
にコピーするだけでMY.exeが動くようになると思うけど。(未確認)
0088デフォルトの名無しさんNGNG
きょうび95ユーザーはいないだろうから
まあ無理して95でうごかすつもりはないけど
みなだんはVC++で作った作品を公開する場合、
どうしてるんですか?98、Me、XPで動くようにするために
0089デフォルトの名無しさんNGNG
スタティックリンクでコンパイルしたらどんなエラーが出たの?
0090デフォルトの名無しさんNGNG
えと、壁紙を変更するプログラムを作りたいと思ってます。
で、その壁紙で使用するJPEG画像をプログラム中に埋め込んで、ユーザが
用意せずにボタンを押すだけで変更できるようにしたいのですが。
プログラムに画像を埋め込んでそれを使用できるようにする方法はどのようにしたらよろしいでしょうか?
色々WEBで調べてみたのですが、検索の仕方が悪いのか、全然わかりません。(TT
0091デフォルトの名無しさんNGNG
CString型に代入した文字列は、何文字かであふれるわけですよね。
どうすれば莫大な文字列を格納できるでしょうか?
0092[email protected]NGNG

「高性能ビデオスタビライザー」です↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

店頭販売価格は、13900 円なんですが、
今回だけ、破格の 7100 円に設定して
おります。

購入希望の方は、名前の所にも書いて
ある、[email protected] 迄、
メールを下さい。

不安な方は、落札をして頂いても
構いません。
0093デフォルトの名無しさんNGNG
>>90
res://ファイル名
形式でリソースにアクセスできたはず、
ドキュメントは・・・どこで見たか忘れた。
res://C:\WINDOWS\System32\shdoclc.dll/dnserror.htm

それが壁紙に使えるかどうかは知らないけどね。
0094 NGNG
ダイアログベースのアプリケーションについて質問です。

1.プロジェクト名"Test"でダイアログアプリケーションを新規作成する。
2.リソースエディタでプッシュボタン(ハンドラ:OnButton1)を作成する。
3.それぞれのソースに下記を追記。
 ・TestDlg.h
   class CTestDlg : public CDialog{
   private:
     CWinThread* mpThreadList;
   };
 ・TestDlg.ccp
   extern UINT gThread (void* pParam);
   void CTestDlg::OnButton1(){
     mpThreadList = AfxBeginThread(gThread ,this);
   }
   
   UINT gThread (void* pParam){
     UINT i,j=1;
     for(i=0;i<30000000;i++){
       j *= j; j /= j; j++; j--;
     }
     AfxEndThread(0);
     return j;
   }
4.上記を実行し作成したプッシュボタンをクリック。
不具合)
 gThreadの実行中にダイアログを閉じるとメモリリークが発生する。

上記のようなメモリリークが起きて困っています。
どのように記述すればよいのでしょうか?
0095デフォルトの名無しさんNGNG
#defineの代わりにconst int NUM = 20;
とやったら純粋仮想関数の定義が間違いだとえらーがでます=0とやれと。
なんで??
0096デフォルトの名無しさんNGNG
よーし今日こそはパパ、MFCやっちゃおうかな〜
0097デフォルトの名無しさんNGNG
>>91
生ポインタを使う。
>>94
気づいたとこだけ
AfxBeginThread(gThread ,this)にはCWnd*を渡さないほうが
よいといわれている。
AfxEndThread(0);
return j; <-これは実行されない気がする。
あとメモリリークはオートデリートするフラグとかの関係かも

以上適当に書いてみました。バーカバーカ
0098デフォルトの名無しさんNGNG
>>91
あふれそうになったら、勝手に伸ばしてくれるので気にしなくてよい。
0099デフォルトの名無しさんNGNG
CStringは
INT_MAX-1
まで。それ以上は使えません
0100デフォルトの名無しさんNGNG
上限まで使う心配もなさそう。。
0101デフォルトの名無しさんNGNG
>93さん
ありがとうございました。
どうやら、壁紙には使えないようです><

ファイルをハードにコピッて使えるかどうか試してみます。
0102デフォルトの名無しさんNGNG
>>95
VCのバグ。.NETでは直ったらしいけど。
0103カメルーン代表NGNG
ウィンドウズによく入っているGAMEPACKみたいな
カラフルで絵とか使ってなめらか動画のゲームって
VCでつくれます?

あのピンボールとかのなめらかなアニメ−ションはどうやって
やっているんだろう。
あと、音のならしかたわかんない。
0104デフォルトの名無しさんNGNG
VC++で作れますがカメルーン代表には難しいと思います。
0105デフォルトの名無しさんNGNG
他のスレでも書き込みましたが、ぜひ相談に乗ってください。
VBで「Dim WithEvents obj???? 〜」って宣言すると、COMコンポーネントの
イベントを受け取れるじゃないですか。
このコンポーネントをVCで動かそうとしています。
VBで出来る事がVCで出来ないわけがないと思っていましたが、いわゆる
インタフェイスクラス側のインプリメントは簡単に出来るんですが、
イベントハンドラ側がうまく実装できません。
タイプライブラリを指定して同コンポーネントのクラスを自動生成させた
のですが、ヘッダファイル上でプロトタイプを確認すると、「引数の型が
あいまいでメンバを実装できません」みたいな表示がされて、イベント
ハンドラが加えられていません。ここでひとつ質問。

1、vテーブルが存在するものとしてviatual宣言の上メンバ関数を書き加えて
意味があるのでしょうか。

そこからイベントをキャッチする場合、

2、生成されたクラスを派生させて、イベント割り当て関数をオーバーライド
すれば、イベントをキャッチできるのでしょうか?

インタフェイス側のクラスはCoRegisterClassObject関数でハンドシェイク
出来ましたが、イベントハンドラ側は「クラスがない」といった風なエラー
が発生します。

3、COMコンポーネントの設計の問題でしょうか?それともクライアント側の
コーディングの問題でしょうか?それとも他に?

COMコンポーネント側もある程度ソースレベルでの融通が効きます。
以上3点の解決について知恵をいただければと思います。
よろしくお願いします。
0106デフォルトの名無しさんNGNG
>>105
マルチポストですか。いい度胸してますね。
あなたの投稿はネタとして受け止められ、マジレスは一つもつかないでしょう。
マルチポストさえしなければねえ・・可哀想に。
0107デフォルトの名無しさんNGNG
>>106
ネタにしたいのはあなたであって、板の総意であるような書き方はお控えください。
0108デフォルトの名無しさんNGNG
>>107
いくら質問に答えてほしいからってバレバレの自作自演は止めろ(藁
0109デフォルトの名無しさんNGNG
106=108ですね。こういうのは自作自演とは言いません。
これを「自作自演」と称するのはあなただけであって、板の総意であるような書き方はお控えください。
0110デフォルトの名無しさんNGNG
105=107=109ですね。こういうのは自作自演とは言いません。
これを「自作自演」と称するのはあなただけであって、板の総意であるような書き方はお控えください。
ついでにどう言い繕おうがマルチポストは全否定されます。
0111デフォルトの名無しさんNGNG
>>110
よっぽど悔しかったんだな(w
逝ってる(w
0112デフォルトの名無しさんNGNG
>>86
遅レスをぶちかましますが、きっとデバッグ版だから動かないのでは。
他のマシンへ持ってくものを作るにはリリース版をビルドしましょう。
0113デフォルトの名無しさんNGNG
エラーの内容も書かないバカはほっとけ
0114デフォルトの名無しさんNGNG
>>78
おそらく古いヘッダとインラインライブラリ(及びヘルプマニュアル)しかなくて
使えないのだとお察しします。ハズしていたらスミマセンが。
新らし目のAPIを使用するには、新しい「プラットフォームSDK」が必要になりま
す。その中に必要なヘッダとインラインライブラリが含まれてきます。最新版な
ら問題なくAPIを使えるはずです。「プラットフォームSDK」は、MSDNのサブスク
リプションを購入すれば送られてきます。サブスクリプションも何種類かありま
すので、必要なものはどれかは調べてみてください。

あとね、自分で関数アドレスを取得する方法もあります。LoadLibrary,
GetProcAddressを調べてみんさい。
0115デフォルトの名無しさんNGNG
MSサイトからDLさせずに購入させるとは
さてはMSの回し者だな?

言ってみただけだ。いわゆる一つのテストだからおーこーるーなーやー
0116114NGNG
>>115
すみません、DLできるんですね?当方、送られてくるCDでしか使用したことが
なかったので知りませんでした。つうか、ダウンロード センターで検索したん
ですが、それらしいものがなかったのですよ。他のSDK(DirectX,WMI等)は
見つかったのですが・・・。
もしよろしければ、アドレスを教えてください。
0117デフォルトの名無しさんNGNG
たぶん他のSDKと同じところだと思うけど・・・
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
0118114NGNG
>>117
このCoreSDK(231.7 MB)ってのがそれらしいですね。でもなぜかDL出来ない。
SDK Update controlてのが必要な様ですが、指示どうりにブラウズしても
インストールできないような。他ではDLできてますか?
0119デフォルトの名無しさんNGNG
>>86
遅レスですが、MFCDLLは、動かす環境にあらかじめあるという前提は
立てないほうが良いです。入っていてもバージョンの古いMFCDLLなら自分の
EXEは動きません。(バージョンが違えば、ファイル名が違うことが多いので)

ちなみに、自分のEXEがリリース版ならリリース版の、デバッグ版ならデバッ
グ版のMFCDLLがそれぞれ必要になります。

自分のEXEに必要なDLL(MFCDLLも含む)を調べるのは、VC++6.0付属の
Dependency Walkerてのを使用して、自分のEXEを開きます。
依存するDLLが一気に分かり、便利ですよ。
0120デフォルトの名無しさんNGNG
Debugビルドしたモジュールは配布しちゃいかんよ。
0121デフォルトの名無しさんNGNG
>>120
Debug版のMFCDLLは再配布禁止です。
が、Debugビルドしたモジュールは場合によっては良いと思われ。
0122デフォルトの名無しさんNGNG
>>118
とりあえずScriptとかActiveXはオンだよね。
あとAdministrator権限と。
俺がDLしたのはかなり前だからなぁ・・
0123118NGNG
>>122
>とりあえずScriptとかActiveXはオンだよね。
>あとAdministrator権限と。
うーんおかしいなぁ。今トラぶってるのかもしれませんね。
きっとそのうち出来るようになるでしょう。多分。
とりあえず、thanks!
0124デフォルトの名無しさんNGNG
パフォーマンスが必要なアプリの場合、MFCは静的リンクのほうが
良いのですか? 動的リンクでも速度は変わらないですか?
0125デフォルトの名無しさんNGNG
なんで試しに測ってみないんだこいつ
なんで試しに測ってみないんだこいつ
なんで試しに測ってみないんだこいつ
0126デフォルトの名無しさんNGNG
>125
StandardEditionは動的リンクが出来ないのよ。
速度期待できるなら新しいの買おうかと思って・・
0127126NGNG
間違えた静的リンクが出来ないの
0128デフォルトの名無しさんNGNG
MFCに関して言うと、GUIのフレームワークとして使っているなら
動的だろうが静的だろうが速度に差は出ない。
出たとしても計測誤差に収まる範囲しかでない。
0129デフォルトの名無しさんNGNG
あるクラス情報をレジストリに保存したいのですがどうすれば良いのでしょうか?
ファイルに保存するならCArchiveメンバ関数を使えばできるのですが、
レジストリに保存/復元したいのです。
0130デフォルトの名無しさんNGNG
129
ぐぐる
 レジストリ VC

・・・そもそもレジストリはストリームな構造でもないし、少量のデータしか
  保管できない。
0131デフォルトの名無しさんNGNG
レジストリAPIの使い方を知りたいのではなく
また、データ量も数百バイトと少量です。
0132デフォルトの名無しさんNGNG
CRegArchive ar; // 自作する

if ( ar.IsStoring() )
 ar << m_data;
else
 ar >> m_data;
0133105NGNG
ATL COM コンポーネントのイベント取得についておうかがいをたてたもの
ですが、方法がわかりました。
見当違いもはなはだしい状況でした。
ありがとうございました。
013494NGNG
>97
コール先のダイアログを操作するのでCWnd*(CTestDlg*)を
渡したいのですが、とりあえずchar*を渡すようにして試し
たところやはりリークが起きました。
現在はOnCancel()をオーバーライドして、スレッドが生き
ている間はダイアログを閉じられないようにして暫定対策
しています。
進展あればまた報告します。
0135デフォルトの名無しさんNGNG
>128
便乗質問ですが、CStringなど使ってバリバリ重い計算してい
る場合はパフォーマンス変わってきますか?
(ちなみに俺はVC6アカデミックエディション)
0136デフォルトの名無しさんNGNG
CStringでばりばり計算というのがさっぱり想像付かないが、
計算結果を文字列にしてダイアログアイテムに対してDDX_とかしてるなら、
その数、その頻度が増えるほど、処理は遅くなる。

これはCStringが遅いのではなく、CPU内で完結する演算処理と、
書式化した演算結果を画面に表示するのにかかる時間が
比べものにならないくらい遅いため(普通の人間にはその差は分からないが)。

演算の経過表示を全部画面に対して行うと、MFCを使わなくても死ぬほど遅くなる。

試せるなら、
1. 演算10万回->経過表示10万回
2. 演算10万回->経過表示を間引いて100回
3. 演算10万回->結果表示1回
を比べてみなさい。

で、MFCのDDX_による画面表示が遅いのかといえば、
Win32APIを使って表示を行うのに比べてよけいな処理が増えている分遅い。
がしかし、普通の人間が見る分には、何百回〜何千回もの表示処理を行わ
なければ大した違いは体感できない。

表示処理は、MFCに限らず重い。
間引けるものなら間引きなさい。

それでも重いなら、計算中に行っている重い処理、特に
メモリ確保、クラスのインスタンス生成、ファイルIOなどの
回数を減らせるように、計算のアルゴリズムを変更しなさい。

MMXだとかそんな姑息な最適化をする前に、
設計段階でやるべきことはたくさんあるのだ。
0137デフォルトの名無しさんNGNG
厳密にはDDXそのものが表示処理を行うわけではないが、
とりあえずそんなもんだとおもっとけ。
0138デフォルトの名無しさんNGNG
>>135
CStringで書いていた処理を charに置き換えたら、リリース版のファイルサイズが
ばっさり減ったし、実行速度も速い。
アカデミック版ということはリリースビルドはできないけど、デバッグ版のほうが
検証コードとかも入っている分、CStringの重さが効いてくるんでない?
0139デフォルトの名無しさんNGNG
>>138
アカデミック版ってリリースビルドも出来ないのか・・・。
最適化が無いとは聞いていたが。
0140138NGNG
>>139 あ、そうでしたっけ?
0141139NGNG
>>140
うん、最適化は無いはず。記憶違いだったらスマソ。
0142デフォルトの名無しさんNGNG
>>135
「CStringを使って重い計算」っていうのがよくわからないけど、
文字列の編集ってことだったらCStringは重いよ。

数十キロ〜数百キロの英文を、メモリに持っておいて、単語を置換したり
連結をしたりする処理を、やったことあるんだけど、
CStringをstd::stringに置き換えただけで、劇的に速くなったよ。
0143デフォルトの名無しさんNGNG
VC++を使ってプログラム組むときに
MFCは使ってられない、
WIN32を組み合わせてプログラムをしてはいけない
と聞きましたが本当でしょうか?
本当なら全部自分で作るしかないのですがそんな効率の悪いことはしてるのでしょうか?

言った人曰くプロなら当たり前といってました
0144デフォルトの名無しさんNGNG
どうせゲームプログラマだろ。
0145デフォルトの名無しさんNGNG
>>143
プロならMFC使うのが当たり前
ゲームなら(以下>>144
0146143NGNG
ガセネタであったと。
でもゲームならDirectXは?
あれは違うのですか、と思いながらスレ違い、板違いになりそうだ
0147デフォルトの名無しさんNGNG
>>146
MFCが必要ならば使うし、そうでなければ使わないと思う。
実際、MFCがあると開発効率は良くなる。
しかし、特別な理由で(他プラットホームへの移植を考慮するとMFC
のライブラリコードに依存したくないとか)使わないこともあるだ
ろう、とマジレスしておく。
スマソがゲームのことは分からんぜよ。
0148143NGNG
お答え頂いた方々ありがとうございます。
確かに楽になる部分はありますしね>>MFC
また何かありましたらよろしくお願いいたします。
0149デフォルトの名無しさんNGNG
ゲームの場合MFCはほとんど使わないよ。
型から外れるせいでVC++のウィザードが役に立たないし、
ウィンドウはたいていシンプルなやつが一つだし、
ブラシやペンを使って描画することもない。
0150デフォルトの名無しさんNGNG
アカデミック版はリリースビルドできることを一応明記しておこうっと。
0151135NGNG
いろいろな方アドバイス有難うございます。
速度が必要なときはCStringを使わずにcharなどを使って
記述した方が良いということですね。
あと私がVC6購入したときの(1.5年前)アカデミックエディ
ションは、スタンダードエディションと全く同じ内容なので、
139さんの言う通りリリースビルドは出来ます。
詳しくはMSDNライブラリの
VC++ドキュメント
  +--VC++6.0の新機能
   +--VC++の各Edition
    +--VC++の各Editionの比較
を参照ください。
0152デフォルトの名無しさんNGNG
CListCtrlのSubItemHitTestメソッドって、もしやVC++6以降のみですか?
VC++5だとコンパイルエラーになって、ヘルプにもそんなメソッドのってないのですが。
0153デフォルトの名無しさんNGNG
トロンって仕様のみじゃないの?
実装は別物。日本人が実装すれば早いだろうが。
あと漢字関係あんの?
0154デフォルトの名無しさんNGNG
誤爆です。。
0155デフォルトの名無しさんNGNG
>>152
無かったら、SendMessage(LVM_SUBITEMHITTEST)したら?
0156デフォルトの名無しさんNGNG
VCで作ったプリグラムは、スタティックリンクして単体で動くようにしては配布するのか、
あるいはMFC.dllを別途附属させておくのか、どっちが常識?

また、そのスタティックリンク、dllについて詳しくわかりません。
このへんどうしたらいいのかも教えてくだされ。

参考までに
http://www.ne.jp/asahi/yamashita/programming/tips/vcpp_faq.html#tips0003
0157デフォルトの名無しさんNGNG
http://member.nifty.ne.jp/hayazo/faq.html
もういっこ参考。

最近のパソコン(ウィンドウズ98が最初から入ってるモデル、ペン2世代くらい)は、
「MFC42.DLL」 「MSVCRT.DLL」
は最初から入ってるもの?ほんとどPCはいってる?

配布するときは「DLLがないひとは、ここからDLしてください」
ってリンクはっとけばいいのかな。
0158デフォルトの名無しさんNGNG
お金がないので、cygwinでプログラムの勉強をしたいと思うんですが、
こういう場合でも、何かのC言語のソフトを購入しないとダメなんでしょうか?

メモ帳とかでプログラムって組めないんですかね?

いや、ほんとにお金がないもので・・・
0159デフォルトの名無しさんNGNG
157
基本的にMY.EXE単独のときは、インストール簡単だからスタテックリンクかな。
ちなみに小さなSDIアプリケーションでダイナミックが30K、スタテックが300Kほど
ダタ。だからネットでのDLが前提だと両方コンパイルして容量を比較して決めた
ほうがいいかも。
MY.EXE、MY1.DLL、MY2.DLL・・・がそろぞれMFCを持つときはダイナミックか
スタティックを検討しよう。

ちなみにOSが古いとき(95)、MFC42.DLLのバージョン不適合(?)だと
「システムに装着されたデバイスが正常に動作してません・・・」など
というメッセージが出でるから、ユーザがパソコンを破壊しかねないので、
ダイナミックでEXEを配付するときは注意。
0160デフォルトの名無しさんNGNG
俺は一応スタティックリンク。

ただしVC++.NETではスタティックリンクしてもWin95で動かないので注意しよう。
0161デフォルトの名無しさんNGNG
>>159
それです。
じつはいま大学や自分のいろんなパソコンでためしてるのですが、
98(これで作成)、XP各マシン(自作マシンやら製品版富士通NECなどいろいろ)
で全部動いて95だけ「開始エラー」と出て、作動しませんでした。
まあ、95は非対応とすればいっか。今日び使ってるひとなんていないし。98以上ということで。
逆に98以上はどうやらほとんどのPCにDLL入っているみたいです。
そんでやっぱ別にしようかなと。
配布するときは安全を考えて、

自分の作成したdebugフォルダの中にある my.exe(これが完成品なわけですよね?)
を単品で
プログラム→「ダウンロード」みたいなかんじにして
それに
「このプログラムはMFC.dllが必要です。ない人は以下からDLしてください」
http://www.vector.co.jp/soft/win95/util/se040499.html

ってのでいいのですか?。つーかベクター直リンOKだったっけな?
0162デフォルトの名無しさんNGNG
>自分の作成したdebugフォルダの中にある my.exe
配布するのが目的なら違います。
リリースビルド版を配布してください。
0163デフォルトの名無しさんNGNG
スタティックリンクにしてもいいと思うけどなぁ。
せいぜい数百KBくらいでしょ?
0164デフォルトの名無しさんNGNG
>>161
VC6でフリーウエアを作って配布してるんだけど、
何人かから MSVCP60.DLL がどうしたとかってエラーが出て
起動しないって報告が来てから、スタティックリンクで配布
するようにしてる。
0165デフォルトの名無しさんNGNG
>>162
初めてしりました。勉強になった。
リリースビルドだとシンボリック デバッグ情報は取り込まず 実行速度を最高速化するんですね。

あとバカ質問なんですが、スタティクリンクの方がいいとのことなんで
やってみようと思うのですが、検索してもいまいちわかりやすいサイトが
ありません。スタティクリンクのやりかたのおすすめのHPってありますか?
肝心なやりかたをしらないんですよ。
0166デフォルトの名無しさんNGNG
>>165
> リリースビルドだとシンボリック デバッグ情報は取り込まず 実行速度を最高速化するんですね。
というか、デバッグビルドだとデバックビルド用のDLLが必要で、
このDLLはVCを持ってない一般の人は普通持ってないので動きません。
さらにこのデバッグビルド用DLLは再頒布不可なので配布もできません。
ゆえにリリースビルドします。

> スタティクリンクのやりかたのおすすめのHPってありますか?
>>156に載ってまっせ。
0167デフォルトの名無しさんNGNG
>>166
ありがとう!
つーかデバックとリリースコンパイルの違いをしらなかったのって
俺だけ・・?スゲー基本的で大切なことなんだからもっと
参考書はこーいうことも大きく書いて欲しいもんだ。
ほとんどの本は完成したものをその後どうするかなんて書いてないもんね。

たすかりましたー。
一般配布する完成品とは
「リリースでコンパイル&スタティクリンクしておく(特別軽くしたくなければ)」
のがいいんですね。
0168デフォルトの名無しさんNGNG
そういうこってす。
0169デフォルトの名無しさんNGNG
> ほとんどの本は完成したものをその後どうするかなんて書いてないもんね。

言われてみれば確かに
0170デフォルトの名無しさんNGNG
>158
リナックスにしる!
0171デフォルトの名無しさんNGNG
>>170
マルチ厨はほっとけ
0172デフォルトの名無しさんNGNG
リストビューにファイルをドラッグ&ドロップしたいのですが、
リストボックスだと行けるのに…、リストビューだとダメなんです。
どうしてなんでしょう?
教えてください。または参考になるHPを教えてください。お願いします。
m(_ _)mペコリ
0173デフォルトの名無しさんNGNG
>>172
DragAcceptFiles
0174デフォルトの名無しさんNGNG
>>167です。
緊急事態です。
http://www.alpha-net.ne.jp/users2/uk413/vc/VCT_EXEdll.html
の方法でスタティックリンクしようと思ったら
コンポボックスの中にスタティックリンクがありません。
「共有DLLでMFCを使用」しかないです。
ひょっとしてこれってVC++6.0スタンダードエdィションだとできないのですか?
0175デフォルトの名無しさんNGNG
今しらべたらやっぱダメみたいだ。
無料でVCスタンダードエディにスタティックリンク機能を
追加するソフトはないの?パッチとか
0176デフォルトの名無しさんNGNG
おれは実行ファイルに埋め込まれるデータを消去するソフトが欲しい。
0177172NGNG
えっと。ListViewにファイルをD&Dするプログラムはできたんですが…
リストのソートが入っているせいか、リスト追加時にコラム0とコラム1のデータがずれてしまいます…。
リスト追加時だけ一時的にソートを停止する為に、ソートの可・不可を設定するための関数って無いですか?
0178デフォルトの名無しさんNGNG
174
スタテックリンク
VC.net standard には付いてるけどVC6には無いのか?
(インストールしてないだけとか)
0179デフォルトの名無しさんNGNG
>>175
tai-ho
0180デフォルトの名無しさんNGNG
>>178
え?あるの??ないっぽいぞ。
0181デフォルトの名無しさんNGNG
VCのStdってMFCのソースはついてねーのか?
0182デフォルトの名無しさんNGNG
181
VC.net standard にはMFCソース付いてくる。
VC6はenterprise使ってるので知らん。
0183デフォルトの名無しさんNGNG
>>182
VC.net standard どうよ。安くて魅力的に見える。
個人的には最適化が無いのはあまりマイナスにはならないと思うので。
professionalなんていらない?
0184デフォルトの名無しさんNGNG
>>177
一時的にリストビューのスタイルビットをいじってみるのはどうだろう。
ドラッグが終わったらちゃんと元に戻してさ。
SetWindowLong,LVS_SORT〜を調べてみんしゃい。
0185182NGNG
VC.net standardについて
普通のアプリケーションを作成するのに機能不足とか全然感じない。
ツールウィザードも一通りある。
VC.netに限らずVS.netはIDEの使い勝手と見てくれが全然違うからかなり戸惑う。
あと.NETのため(?)VS6に比べてメモリとHDを馬鹿食いする。
0186デフォルトの名無しさんNGNG
>>185
レス、thanks!
やっぱ値段以上の機能なんだね。ただ、.NETは重いのが玉に瑕、と。
自分の環境と相談しながら検討してみるよ。
0187デフォルトの名無しさんNGNG
>>185
どれぐらいのスペックがないと厳しいの?
0188デフォルトの名無しさんNGNG
VC6.0のヘルプより抜粋
Standard Edition 上級者向け Visual C++ ツール セットを使いなが
ら、C++ 言語を学習します。Standard Edition には、Professional
Edition の機能がほとんど揃っています。コードの最適化、プロファイラ、
MFC ライブラリの静的リンクの 3 機能だけがありません。
0189デフォルトの名無しさんNGNG
単純な電卓ソフトを作れといわれました。
でも作り方がわからないのです。
ソースあるところとか知りませんでしょうか?
何とか解読したいのです…
ffftpの作者の電卓は複雑すぎます…
0190デフォルトの名無しさんNGNG
VCじゃなくVBレベルでも作り方わからんか?
わからんなら諦めた方がいい。
0191デフォルトの名無しさんNGNG
結局言語ではないと思うんですよ、自分の悩んでいるところ。
ソースどうやるん、と思います...
最後のチャンスをください。
0192デフォルトの名無しさんNGNG
電卓のソースどう書くんでしょうか?
コマンドプロンプトでもかけません。
0193デフォルトの名無しさんNGNG
>>189
MFCcalc。VC++6.0のサンプルに入ってる。
0194デフォルトの名無しさんNGNG
有難うございます
0195デフォルトの名無しさんNGNG
>>191
俺はお前が分らないヨ!
普段は何語を使ってらっしゃるんですか?
慣れない日本語は使わないほうがいいと思うヨ!
0196デフォルトの名無しさんNGNG
>189 >192 >194
誰が何のために君に電卓作れと言ったんだ?
レスを見る限りはっきり言って現在の君では193を解読
するのは難しいと思う。
電卓勉強するより理不尽なことを言う奴を説得する勉強
をするべし。
0197デフォルトの名無しさんNGNG
電卓[の機能をもったアプリケーション]のソースはどう書くのでしょうか?
コマンドプロンプト[上で動作する、GUIを持たないタイプの単純なもの]でも書けません。
0198デフォルトの名無しさんNGNG
>197
ttp://www.kumei.ne.jp/c_lang/
ここあたりでC++の基本からどうぞ。
0199デフォルトの名無しさんNGNG
>>197
俺はてっきりコマンドプロンプト上でプログラムを書くつもりだったのかとおもたよ。
0200デフォルトの名無しさんNGNG
確かにね。でも本人がソースを所望のようだからそれで良いんじゃない?
0201193NGNG
一応電卓だが、実はOLEサーバーのサンプルという罠。
ちょっとだけ複雑だったかも知れん。
他に思いつかなかったのだ、すまそ。
0202デフォルトの名無しさんNGNG
VBなら初めてVBさわってから1時間くらいでできたよ
0203デフォルトの名無しさんNGNG
>おれは実行ファイルに埋め込まれるデータを消去するソフトが欲しい。
な、なにかやばいものが埋め込まれちゃうんでしょうか?
0204デフォルトの名無しさんNGNG
>>203
ビルドした環境のプロダクトID、ユーザー名、ネットワーク接続があるときは
そのときのIPアドレスなどが、コンパクトなバイナリになって、実行ファイル
に分散して埋め込まれます。
0205デフォルトの名無しさんNGNG
はっきり言って電卓ソフトつくるぐらい技量があれば
そうとうです
0206デフォルトの名無しさんNGNG
>>205の言うことは本当ですか?
0207デフォルトの名無しさんNGNG
>>206
>>205は宿題で電卓作れって言われて作れなかったんでしょ。
0208デフォルトの名無しさんNGNG
>>204
本当なのか・・・!かなりやな感じですね。ひょっとしてウィルス対策かね。
できれば、情報ソースとか詳細キボンヌ。
0209デフォルトの名無しさんNGNG
>208
割れ対策だろ。

>206
本当です。電卓は結構高度です。字句解析、再帰、、、設計力が必要です。
世の中のプログラマーは設計もせずtry&errorの力業で何とかプログラムを仕上げるヤツだらけです。
0210193NGNG
>>209
>字句解析、再帰、、、設計力が必要です。
これはコマンドラインか、エディットボックスで逆ポーランド記法入力する
タイプの電卓でしょ?
GUI電卓は割と簡単に作れそう。VBなら、さらなり。
0211デフォルトの名無しさんNGNG
>>209
>割れ対策だろ。
???ハッキングツールの出所を特定するって言う意味?
0212デフォルトの名無しさんNGNG
>>209
数式入力する程度なら簡単に作れますが。
0213デフォルトの名無しさんNGNG
電卓程度の構文解析で「相当」扱いされてたら身が持たん。
0214デフォルトの名無しさんNGNG
>>209
その程度で高度といわれても・・・(´ー`;)
0215デフォルトの名無しさんNGNG
>211
VC++のピーコだろ。
0216デフォルトの名無しさんNGNG
誰か逆ポーランドの電卓製作して公開してみてよ。
>209あたりが製作して公開してくれるとみんな納得すると思うし。
>209もこのままあおられて終わるのも面白くないでしょう。
どうよ、おめぇら
0217煽りじゃないよNGNG
スーパープログラマ求む
(なんて募集に応募してみようかな。今日代休でひまだし)
0218209NGNG
>216
ハァ?
それをいうなら簡単を連発してる奴らだろ。
0219216NGNG
>209
私はあなたの実力を知りたい。
出来るのなら出せるはずでは...
別にVBでもよいですけど。
0220デフォルトの名無しさんNGNG
>>216
検索すれば簡単に見つかりそうなもんを、
「作れ」って煽っても…
0221209NGNG
オレ様は簡単に作れるがここでそんなもん簡単だと
豪語する連中が先ず作るべきだな。
0222216NGNG
>>220
209は作れるのかな?
209は本当に楽といっている奴らが作ったら作る機あるのかと、小一時間(略
0223193NGNG
つーか、そんなことで喧嘩するなYO・・・。
みんな、自分の腕にプライドを持っているからこそ、なのかな・・・。
0224デフォルトの名無しさんNGNG
>>215
とりあえず情報ソースと詳細キボンヌ。
0225デフォルトの名無しさんNGNG
お前ら電卓程度で何をそんなに熱くなってるんだよ(w
0226デフォルトの名無しさんNGNG
せっかく今スレから>>2-3に参考サイトと書籍を載せたんだからちょっとは見て欲しいと思う。
「MFCによるWindowsプログラミング」P485
ダイアログアプリのサンプルとして逆ポーランド記法電卓が載ってる。
MFCスレだしちょうどいいサンプルだと思われ。
0227デフォルトの名無しさんNGNG
質問です
一般的に
とりあえずC++の言語仕様は知っているかも(はじめてのC++とかで学んだ)
なんていう甘い考えの人間がVC++を使ったら何ヶ月くらいで物になると思いますか?

Windowsのプログラムは
VM_hogeなどのメッセージが来てそれに対応するOnhogeというメンバ関数に処理を記述する
などのさわりしか知りません。

1 プログラムできるというのはAPIやクラスライブラリを理解していて、
2 言語仕様を知っていて、
3 開発ツールを使える
ことかとおもいますが
3は特に問題ないと思います。

なめきった質問かもしれませんがよろしくお願いいたします。
0228デフォルトの名無しさんNGNG
VM_hogeって何ですか?
0229デフォルトの名無しさんNGNG
>>227
ウイザードが作る雛型をベースに作る程度だったら、
チュートリアルとかサンプルをがんばって勉強すれば
そんなに時間はかからないと思う。

ExcelみたいなUI作るとなると、スゲーたいへん。
0230227NGNG
>>229
有難うございます
>>228
WM_PAINT OnPaintなどのことです、手抜きしてすみません。
0231デフォルトの名無しさんNGNG
>>227
作る内容によって大幅に変わるでしょうね。
1.Windowsのメッセージベースプログラミングを理解する。
(コンソールベースのプログラムしか作らないなら必要なし)
2.Windowsの流儀(APIの使い方など)を理解する。
(MFCを使えば、場合によっては必要なし、いや必要か。)
3.MFCなどのクラスライブラリなどを理解する。
(使わないなら当然必要なし。)
4.言語ツールに習熟すること。
5.技術情報を引き寄せるための、情報収集力、咀嚼力。あと英語の読解力。
これはそれなりでも可だと思う。

どれもこれも、すぐ習得というわけには行かず、むしろ同時にこれらを
勉強しなければならない、という煩雑さがあると思う。
簡単なアプリを自力で!書けるようになるまでは、数ヶ月見たほうが
良いんじゃないかな。

あと、先生の存在かな。問いに的確に答えてくれる身近な人の存在。
これ大事。学習のペースに影響でかいよ。
初心者のときは、「知っててあたりまえ」なことにも気が付きにくいことって
あるよね?経験者に聞けば一発で分かるという。。。
あとは、ある程度力がつけば、自力で必要な情報を得て鍛えていけると思う。
独学のみでもできるけど、ペースは落ちるだろうね。
0232デフォルトの名無しさんNGNG
でもこういうの聞いてどうすんだろ。
ほかのスレでもたまに見かけるけど
「○○を習得するにはどのくらいかかりますか?」
「○○歳なんですが今からやるにはどのくらいかかりますか?」
とか。
本人の努力次第だと思うし、習得したいなら努力すべきだと思うんだけど。
0233デフォルトの名無しさんNGNG
>232
そういうのは元気付けて欲しいんだよ。
やさしく’あきらめろ’っていってやんな。
0234231NGNG
一番大事なのは、それを「好きになること」と「やる気」かな。
これがあれば、少々の飲み込みの悪さやテクニックのまずさ・・・は
徐々に克服できると思う。
0235デフォルトの名無しさんNGNG
>>234
そうじゃない人もいるから怖い。
0236デフォルトの名無しさんNGNG
>>235
それってどうなるんだ・・・。まさか、変な方向に暴走するとか?
0237デフォルトの名無しさんNGNG
ビットマップを印刷しようとしているのですが、一部のプリンタで印刷ができません。
(PS プリンタでERROR:undefined OFFENDING COMMAND:getがでる)

何が問題なのかご教授頂ければ幸いです。

:
LPBITMAPINFO lpbi;
LPTSTR lpBits = NULL;

#define WIDTHBYTES(bits) ((((bits) + 31) / 32) * 4)

// Fill in the BITMAPINFOHEADER
lpbi = (LPBITMAPINFO) new BYTE[sizeof(BITMAPINFOHEADER)];
lpbi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
lpbi->bmiHeader.biWidth = rect.Width();
lpbi->bmiHeader.biHeight = rect.Height();
lpbi->bmiHeader.biPlanes = 1;
lpbi->bmiHeader.biBitCount = 24;
lpbi->bmiHeader.biCompression = BI_RGB;
lpbi->bmiHeader.biSizeImage = WIDTHBYTES(rect.Width()) * rect.Height();
lpbi->bmiHeader.biXPelsPerMeter = 0;
lpbi->bmiHeader.biYPelsPerMeter = 0;
lpbi->bmiHeader.biClrUsed = 0;
lpbi->bmiHeader.biClrImportant = 0;

0238237NGNG
続き

hBitmap = CreateDIBSection(pDC->m_hDC, lpbi, DIB_RGB_COLORS, (void **)&lpBits, NULL, 0);

// DSPメモリ デバイスコンテキスト作成
DCMem.CreateCompatibleDC(pDC);
Soh = (HBITMAP)SelectObject(DCMem.m_hDC, hBitmap);

// ビットマップ複写
DCMem.BitBlt(0, 0, rect.Width(), rect.Height(), pDC, 0, 0, NOTSRCCOPY);
CPrintDialog* dlg = new CPrintDialog( FALSE,
PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS | PD_NOSELECTION,//[全ページ]選択,[部数],[ページ指定]使用不能,[選択した部分]使用不能
this);
if( !dlg->GetDefaults() )
{
return 0L;
}
DWORD dwSaveFlags = dlg->m_pd.Flags;
dlg->m_pd.Flags &= ~PD_RETURNDEFAULT;
LPDEVMODE pDM = dlg->GetDevMode();
pDM->dmCopies = 1;
pDM->dmOrientation = DMORIENT_LANDSCAPE;
pDM->dmFields |= DM_ORIENTATION;
pDM->dmTTOption = DMTT_SUBDEV;
DCPrn.CreateDC(dlg->GetDriverName(), dlg->GetDeviceName(), dlg->GetPortName(), pDM);
TEST*/
DCPrn.ResetDC(lpDevMode);

DocInfo.cbSize = sizeof(DOCINFO);
DocInfo.lpszDocName = "hogehoge";
DocInfo.lpszOutput = (LPSTR)NULL;
DocInfo.lpszDatatype = NULL;
DocInfo.fwType = DI_APPBANDING;

:

if (DCPrn.StartDoc(&DocInfo) != -1)
{

:
DCPrn.StretchBlt(iOffset_X, iOffset_Y, iBitMap_X, iBitMap_Y, &DCMem, 0, 0, rect.Width(), rect.Height(), SRCCOPY);
:
retval=DCPrn.EndDoc();
}
DCPrn.DeleteDC();
:
0239デフォルトの名無しさんNGNG
あるプリンタで印刷できて、あるプリンタでエラーがでるなら、
単にデバイスがStretchBlt()をサポートしてないだけとか。
デバイス依存ぽいし・・・
0240237NGNG
StretchBlt
ってデバイス依存なんですか?!(しらなかった)
0241デフォルトの名無しさんNGNG
デバイス依存ってのはディスプレイのコンパチDCから
プリンタDCに書き込むところ。(断言は出来んけど)
DIB系の関数つかったほうがいいような。

あと
BitBlt()
GetDeviceCaps()
SetDIBitsToDevice()
StretchBlt()
StretchDIBits()
は使えるデバイス使えないデバイスがあるそうです。
詳しくはGetDeviceCaps()に聞いて下さい
0242デフォルトの名無しさんNGNG
>>204
うぅ、しらなかった。鬱
0243デフォルトの名無しさんNGNG
>>242
誤報じゃないのかな?ワード文書とかにIDが埋め込まれるって話は聞いたこと
があるけど。マクロウィルス騒ぎの時に報道されたから覚えてる。
0244デフォルトの名無しさんNGNG
どう見ても要らん文字列がバイナリに埋め込まれてる気がするのは漏れだけ?
0245デフォルトの名無しさんNGNG
>>244
バイナリのどの辺?
0246204NGNG
釣ろうとしたつもりは無いが、釣れてしまった、と言ってみるテスト...
違う環境でビルドした実行ファイル比較しても、1バイト程度違うことがあるけど、
まったく同じファイルが出来上がりますです。
0247デフォルトの名無しさんNGNG
>>246
勘違いってことでOK?
0248204NGNG
>>247
OK。まぁ、いい大人になっても割れやってるヤシは(以下略 ってこった。
0249デフォルトの名無しさんNGNG
>>245
バイナリエディタで見ると途中に関数名みたいのがずらずらと。
あれホントにいるのかなと思ったんで。
0250デフォルトの名無しさんNGNG
>249
インポートテーブルじゃろ。ダイナミックリンクする関数名が入ってる。
95持ってたらクイックビューアで見てみるとよろし。
0251デフォルトの名無しさんNGNG
序数リンクで充分じゃねーの、ってことを言いたいのでは?
0252デフォルトの名無しさんNGNG
質問。すこしガイシュツなのですが、
ビットマップ絵をなめらかアニメーションでスーーっと動かしたいです。
当然「タイマーイベントを使え」って言うかもしれませんが、
自分なりに調べたのですがわかりません。タイマーについて
やさしく教えてくれる人やHP教えてくれる人大募集。お返事待ってます。

今はたとえば A→―――→B地点 
の物体の移動アニメ作りたいんだけどタイマーがないので、一瞬で移動して終わりです。
タイマーをつかえばウィンドウズゲームパックみたいなグtラフィカルななめらかアニメ
な動きが作れるはずなのですが・・おねがいします。
0253デフォルトの名無しさんNGNG
>>252
SetTimerとKillTimer調べてみ。
0254デフォルトの名無しさんNGNG
>>253
なんだか時計とかのやつがたくさんでてきてしまいました。
一応関係るのかな・・
BASICでいうwait10とかあったでしょ。あーいうのだと思うんだけど。
ゲームパックのあのなめらかアニメーションはどうやって実現しているのかな。
なにかサンプルがあればいいんだけどなあ
0255デフォルトの名無しさんNGNG
>>254
一応、ここはMFCの相談室なんだけど、言語は何を使用していますか?
CまたはC++ですか?MFCは使ってますか?
あと、SetTimerとかを使用するときには、ウィンドウのメッセージを
一応知っとかなきゃならないけど、その辺は大丈夫?
0256デフォルトの名無しさんNGNG
おそらく何も知らないのだと思われ。
調べたっていってもネットでちょこっと検索しただけだと思われ。
入門書の一つでも買うことを強くおすすめする。
0257254NGNG
C++です。
ウィンドウで動くドラクエみたいな絵をコマコマごとに
動かすやつができるじょうたいのミニゲームを作れるレベルです。
ただこれが、動きがとびとびなのでこれをスーっとアニメして動かしたい。

入門書は何冊かあるけどこのあたりは書いてない。
あんまり使わないからかな。
0258デフォルトの名無しさんNGNG
絶対載ってるって・・・
あるいは本の対象範囲が違うんじゃないかな。
0259254NGNG
http://www.geocities.co.jp/SiliconValley-PaloAlto/5989/win06.html
このあたりかな・・・
ちょっとやってみよ
0260デフォルトの名無しさんNGNG
つーか
> なんだか時計とかのやつがたくさんでてきてしまいました。
> 一応関係るのかな・・

とか言ってるようじゃ無理だろ
関係あるに決まってんだろ
時計の針(または数字)を動かすのと絵をコマごとに動かすのは全く同じことじゃねーかよ
0261デフォルトの名無しさんNGNG
タイマの載ってない本って何よ?
0262デフォルトの名無しさんNGNG
割と簡単すぎて逆に載ってないのかもね。

>>257
SetTimer(hwnd, // handle to main window
1,       // timer identifier
1000, // 1-second interval
(TIMERPROC) NULL); // no timer callback

これでhwndにWM_TIMERメッセージが1秒間隔で届く。
hwndウィンドウプロシージャ内では、こんな風に。

case WM_TIMER: // WM_TIMERメッセージを検出
 // 一秒間隔でここに制御が来るので、
// やりたいアニメーションの処理をする。


最後に、タイマーをきりたいときは、KillTimer(hwnd,1);
こんな感じにすること。これは忘れないように。

これで検討がつかない場合は、ウィンドウメッセージのこととかも
ちゃんと勉強したほうがいいよ。
0263デフォルトの名無しさんNGNG
>>259
それが参考になるならスレ違い。
このスレにはMFCって書いてあるだろ。
0264デフォルトの名無しさんNGNG
>>262
KillTimer忘れたらどうなんの?
ウィンドウとともに死滅してくれたほうがうれしいんだけど、してくれないの?
0265デフォルトの名無しさんNGNG
>入門書は何冊かあるけどこのあたりは書いてない。
何冊も持っててタイマが載ってないって絶対金の無駄遣いだって。
0266254NGNG
ここの掲示板の人は乱暴な人が多いようですね。>>256 >>260
パソコンばかりやっててモラルがないのかな。

自分が中学の時に微分積分もできねーのか!って先生言われても
相手にとっちゃ常識で屁みたいなものだろうけど
こっちはわかんないよって状態の気持ち考えてみてよ。
今からさぐりさぐり勉強しようと努力はしてるのに。

こんなのもわかんねーのか発言はいやです。
0267デフォルトの名無しさんNGNG
>>264
プロシージャがなくなるので、タイマーメッセージ自体はこなくなるけど、
ウィンドウやコンとロールを破棄してる最中のような変なタイミングで
タイマーがくると困るので、適切なタイミングで殺すのが良いんじゃない
かな、くらいの意味。
0268254NGNG
>>262
あ、超ありがとうございます。
ほんとにありがとうございました。
そーいうのですハイ!
0269デフォルトの名無しさんNGNG
>>266
教えて厨がモラルを語るな。
とりあえずタイマが載ってないという持ってる書籍名あげてみろ。
0270254NGNG
>>269
いや・・だって相談室だから相談したんだけど・・
質問したらダメなの?ここ。
私みたいなアリん子にそんなムキになっちゃだめだよ。
なにかストレスあるの?
0271デフォルトの名無しさんNGNG
>>270
煽りウザイ。
質問するのは「ちゃんと」調べてもわからなかった人だけの特権。
0272262だがNGNG
そんなことで喧嘩すんなよ。
>>270
君の言い分もわかるが、あおるような書き方は
やめてよ。
0273デフォルトの名無しさんNGNG
>>270
タイマーが載ってない本教えてくれって
0274254NGNG
ごめんなさい。
本は今大学においてあって手元にないです。
月曜日もう一回確認しますね。
0275デフォルトの名無しさんNGNG
>>271
そだね。
がっこの先生は教えるのが仕事、ここは相談室であって教室ではないよ。
0276262だが NGNG
あ、学生さんか、勉強がんばってね。
あと、262丸写しじゃなくて、一応、意味を理解したほうがいいと思うので
そこんとこヨロシク。
0277デフォルトの名無しさんNGNG
>>262を丸写しで動くならやっぱりスレ違いだなと言ってみるテスト。
0278デフォルトの名無しさんNGNG
ちょっと質問です。
.netのMFCで吐いたコードって、Win95で動きますか?
(MFCはスタティックリンクで)
0279デフォルトの名無しさんNGNG
動かないそうです
0280278NGNG
>>279
え、マジですか。
IEのバージョン揚げてDLL更新しても駄目なのか…ショボーン。
0281デフォルトの名無しさんNGNG
>>280
どうして、そこまでの結論がでるの?
実際に動かないってこと?
0282デフォルトの名無しさんNGNG
まともなプログラマならそのへんまで推察(早とちり)しないとダメだということを暗に伝えたかったのでは
0283デフォルトの名無しさんNGNG
なんだ、厨房祭りは終わりか…。
0284デフォルトの名無しさんNGNG
いや、質問スレで答えないで文句逝ってる奴が厨房。
そんな奴はカキコしねーでいいよ
0285デフォルトの名無しさんNGNG
>>275
0286デフォルトの名無しさんNGNG
直後に答えてるのに教えて厨が「わかんない」の連発してるからだろ。
あげくのはてに欲しがってた答えはMFCじゃないし。
0287デフォルトの名無しさんNGNG
SetTimerというキーワードを貰ったら、MSDNで該当個所を読み、タイマー使ってるサンプル見つけてきて
実際にコンパイルして動作を確認するくらいのことはして欲しいなあ。
0288デフォルトの名無しさんNGNG
「MFC SetTimer アニメーション」くらいをぐーぐることもしてほしい。
>>253-254を見ればわかるが30分くらいしか検索してなくて、
しかも探し方が悪いのかヒット数が多すぎて調べるのが嫌になったのが見え見え。

さらに気になるのはMFCを使ってるかどうかってこと。
>>255でも聞いてるけどC++を使ってるとは書いてるけどMFCかどうかは答えてないんだよな。
>>259、>>268あたりを見るとに非MFCに思えてならない。

いずれにせよ>>270の逆ギレ&煽りの時点で厨決定。
0289262NGNG
>>288
>さらに気になるのはMFCを使ってるかどうかってこと。
それは俺が悪かったよ、こう書けば何の問題もなかった。

WM_TIMER
↓
CFoo::OnTimer();
0290わけわかめNGNG
以下のやつ、なぜかXYZしか表示されん。なんで?
pDC2を全部pDCにかえると、ABCも表示されて、
コピー(BitBlt)先にもABCが表示されるんやけど…?
ちなみに VisualC++ .NET

void CMemoPp3View::OnDraw(CDC* pDC)
{
CDC dcMem;
CDC* pDC2;
dcMem.CreateCompatibleDC(pDC);
pDC2 = &dcMem;
// pDC2 = pDC; // ここを有効にすると両方かかれる。

pDC2->TextOut(1,1,"ABC");
pDC->TextOut(1,20,"XYZ");
pDC->BitBlt(100, 100, 60, 20, pDC2, 1, 1, SRCCOPY);

dcMem.DeleteDC( );
}
0291デフォルトの名無しさんNGNG
>>290
んなもん
>> pDC2->TextOut(1,1,"ABC");
pDC2( = &dcMem )
に描画してるからに決まってるだろ、アフォ?
つーか座標が(1,1)から始まってるみたいなのも激しく萎えるんだが
0292わけわかめNGNG
いや、その後で BitBlt()やってるのに、なんでってことっす。
0293デフォルトの名無しさんNGNG
>>292
ぐふ・・・逝ってくる・・・
行く前に、
dcMemにちゃんとBitmap選択しれ
それと座標は(0,0)から始めてくれ


・・・んじゃ逝ってくる
0294わけわかめNGNG
逝く前にもう一声。
これ試しに作ってるだけやから、座標(1,1)とか適当やけど
(0,0)にしなきゃいけない意味あるん?
Bitmap選択って何?
pDCには普通にテキスト書き込めてるから、
CreateCompatibleDC(pDC)ってやれば、
pDC2はpDCのクーロンみたいなもんやから
特になにもせんでも、書き込めると
思ってたんやけど、そこが、そもそも俺の勘違い?

void CMemoPp3View::OnDraw(CDC* pDC)
{
CDC dcMem;
CDC* pDC2;
dcMem.CreateCompatibleDC(pDC);
pDC2 = &dcMem;

pDC2->TextOut(0,0,"ABC");
pDC->TextOut(0,20,"XYZ");
pDC->BitBlt(100, 100, 60, 20, pDC2, 0, 0, SRCCOPY);

dcMem.DeleteDC( );
}
0295デフォルトの名無しさんNGNG
>>294
君はまずAPIからやった方がいいんじゃないか?
API勉強するなら、猫でもわかる〜っていう良いサイトがあるぞ。逝ってみれ。
0296デフォルトの名無しさんNGNG
>>294
http://homepage1.nifty.com/CavalierLab/lab/win/bitmapobject.html
0297デフォルトの名無しさんNGNG
>>294
黄泉の国から帰ってきた

ん〜〜なんつーのかな。
たとえが悪いけど、DCは車で言うエンジンとすると、
CreateCompatibleDCはエンジンだけ複製するわけ。
タイヤやシャーシは自分で選ぶわけ。

CreateCompatibleBitmap( pDC, Width, Height );
使って作ったビットマップをdcMemに選択してやらにゃならんのよ

座標の(0,0)は個人的要望。
0298わけわかめNGNG
なるほど…

あっちこっちで出てくる例はビットマップリソースを
貼り付けるやつばっかりで、CreateCompatibleBitmap
を使ってなかったんで、分からんかったんやけど、
そういう仕組みだったとは…。

CreateCompatibleDCでpDCに設定されてるすべての要素が
コピーされるんやと思ったんやけど違うんやね。

#Unixのforkなみ(これも例えわりぃ〜)に、それを呼んだ
#時点で、その時点でのDCに関する情報が全部コピーされ
#ると思ってたっす。代わりに逝ってきます。

下でとりあえず動いた。

void CMemoPp3View::OnDraw(CDC* pDC)
{
CDC dcMem;
CDC* pDC2;
dcMem.CreateCompatibleDC(pDC);
pDC2 = &dcMem;
CBitmap bmp;
bmp.CreateCompatibleBitmap( pDC, 200, 200 );
CBitmap* pOldBitmap = dcMem.SelectObject(&bmp);

pDC2->TextOut(0,0,"ABC");
pDC->TextOut(0,20,"XYZ");
pDC->BitBlt(100, 100, 60, 20, pDC2, 0, 0, SRCCOPY);

dcMem.SelectObject(pOldBitmap);
bmp.DeleteObject();
dcMem.DeleteDC( );
}
0299デフォルトの名無しさんNGNG
>>297
座標を(1,1)にするか(0,0)にするかって言われたら、
(0,0)で即決なのがC/C++プログラマの正しい姿っしょ。
『個人的要望』なんてヌルいことといわずに、
『C/C++プログラマの総意』ぐらい言ってもバチはあたらんと思うぞ。
0300デフォルトの名無しさんNGNG
>>299
>座標を(1,1)にするか(0,0)にするかって言われたら、
>(0,0)で即決なのがC/C++プログラマの正しい姿っしょ。
それは作るものに応じて変わってくるのでは。わざとやることだってあるし。
見た目、デザイン的にわざとはみださせたい、とかね。
それに問題の本質とは関係ないと思われ。
0301デフォルトの名無しさんNGNG
MFCってなに?と、俺も質問してみたりする。
VC++で作るウィンドウズプログラムのことじゃないの?それ以外になんかある?

入門者の赤子の素朴な質問に答えもせず、ただ「こいつは厨房だほっとけ」
とだけ書くだけのは、マルチ重複質問してるのと同レベルだぞ。
0302デフォルトの名無しさんNGNG
MFC使わずにVC++でウィンドウズプログラム作ってますが何か。
0303デフォルトの名無しさんNGNG
>>301
VC++でウィンドウズのプログラムを作る際に使われる、
「便利な機能を集めた、プログラムの部品」のことです。
C++の言語から使用することが出来ます。
「便利な機能を集め」ているため、これを使用すると、開発のスピードが
あがることが多いです。
0304デフォルトの名無しさんNGNG
>301
ライブラリみたいなモンだよ。
クラスライブラリ。APIをラッピングしたのがほとんど
つーかAPIの知識なしに使うと危険かも
0305デフォルトの名無しさんNGNG
>>301
だからそれは「MFCとは」なんかを検索した上での質問なのかと。
さらに入門書などは読んだのかと。
調べれば簡単に見つかったりたいていの入門書に書いてあることを
質問するから嫌われるんだよ。
0306デフォルトの名無しさんNGNG
MFCすら知らなかった>>254=>>301
0307デフォルトの名無しさんNGNG
>>305
自分でまず調べるのは最低限必要だが、それでも分からないってことも
多いだろ。
検索ページや本に書いてあることが多い、
「MFCは、Microsoft Foudation Class ライブラリの略でWindowsAPIと
VisualC++がうんぬんかんぬん」といった説明では、まったくの初心者で
は歯が立たない。そんな相手がMFCを幾分でも理解するために、
「まずWindowsAPIとC++やライブラリの概念を覚えろ」とかいうのも酷だ
と思うし。

自分で調べずに質問するのは論外だが、(これは305のことではないが)
質問相手が、調べずに質問していると決め付けている一方的な態度の人
が多いと思うのは俺だけではあるまい。
0308デフォルトの名無しさんNGNG
>>307
俺は別に何も知らない初心者が悪いと言ってるのではない。
ただ、仮にMFCを検索して
> 「MFCは、Microsoft Foudation Class ライブラリの略でWindowsAPIと
> VisualC++がうんぬんかんぬん」
というのが出てその意味がわからなかったとしたら、その文のどこが
わからないのかを書くべき。
(本当に知りたいんだったらわかる文章が出てくるまで検索するか
分からない単語を再検索するのが筋ってもんだと思うけど)
質問者はわからないから質問してるのは承知してるが、それと同様に回答者も
質問者がどの程度まで知ってて何がわからないのかはわからない。

というかこんなこと改めて言うまでも無く、技術系掲示板やMLでは常識だと思うんだが。
0309デフォルトの名無しさんNGNG
優しい人が低姿勢で教えるスレきぼーん
0310デフォルトの名無しさんNGNG
スレタイにわざわざ「MFC限定」と書いてあるのに
全然気にならなかったのだろうかと素朴な疑問。
0311デフォルトの名無しさんNGNG
次からは
Visual C++(MFC限定)相談室じゃなくて
MFC相談室にすれ
0312デフォルトの名無しさんNGNG
>>308
おっしゃる通り。そちらの言い分はまったく常識的だと思う。
ただ、
>質問者はわからないから質問してるのは承知してるが、それと同様に回答者も
>質問者がどの程度まで知ってて何がわからないのかはわからない。
俺はある程度(雰囲気程度)の理解でも良いなら抽象的な「MFCってなんですか」て
質問もアリだと思う。その場合、答える側としては、「抽象的な質問だから、
だいたいの抽象的な答えで良いんだろうな」という理解でOKと思うが。
(当然、事前に自分で調べて分からなかった場合に限るが)
質問者がその答えでは困るようでは再度「さらに具体的な質問」をしてくるだ
ろう。でもその場合は最初から書いてくれってのは、勿論あるが。
0313デフォルトの名無しさんNGNG
>>312
あぁ、俺もその考え方にほぼ同意だ。結局
> でもその場合は最初から書いてくれってのは、勿論あるが。
に集約されてる気がする。

それで例えば先のタイマーアニメーションの質問者が「さらに具体的な質問」を
してきたかといえばしてないだろうというのが俺の見解。
>>301に関しては本当に何も知らない入門者なら>>303でいいだろうし
C++知ってる程度なら>>304の内容でいいだろうし。
ただ、
> VC++で作るウィンドウズプログラムのことじゃないの?それ以外になんかある?
と言ってるようじゃ検索すらしてないんだろうなというのが俺の見解。
0314デフォルトの名無しさんNGNG
なんでもありのスーパー初心者向け
ここだけ教えて君マルチOK超初心者!無法地帯VC
スレ作ってはだめなの?つくっちゃう?

用は上級者はここでアホ質問する素人初心者が邪魔なんでしょ?
こっちにとっちゃあ、そんなもんすぐわかるだろ級の内容が
>>301くんとか素人にとっちゃあマジなわけだ。
別スレだったら問題ないよね?
0315デフォルトの名無しさんNGNG
それってとかすごくくだらない質問スレとか過去ログ読まずに質問スレじゃない?
問題なのは本人にとってその質問がぜんぜんくだらなくないことと、過去ログなんてそもそも眼中にないことだね
0316312NGNG
>>313
>それで例えば先のタイマーアニメーションの質問者が「さらに具体的な質問」を
>してきたかといえばしてないだろうというのが俺の見解。
いや、>>254で結構具体的にしてると思うが・・・。
>BASICでいうwait10とかあったでしょ。あーいうのだと思うんだけど。
>なにかサンプルがあればいいんだけどなあ
とか。それより、このタイマーアニメーションの件を問題にしているとはわか
らなかったよ。MFCの方を問題にしているかとばかり。

>> VC++で作るウィンドウズプログラムのことじゃないの?それ以外になんかある?
>と言ってるようじゃ検索すらしてないんだろうなというのが俺の見解。
これに関しては、検索で得た知識で誤解したってことも考えられるけど・・・。
結局、本当に検索したかは書かなかったら本人にしか分からないし、答えるほう
も自分の見解に基づいて仮説(!=事実)を考えるしかない、という根本的な部
分が問題ということでOK?
0317デフォルトの名無しさんNGNG
>>314
そんなのが許されるのは検索の仕方も知らないような全くのPC初心者が
Windowsの基本的なことを質問するような程度のものだけ。

プログラミングを志す人間なら、ある程度自己解決ができて当たり前。
まあ>>301は門外漢がネタで書いてるだけだろ。ただの厨房の可能性も否定できんが。
0318デフォルトの名無しさんNGNG
検索っつっても
>>254の
> なんだか時計とかのやつがたくさんでてきてしまいました。
> 一応関係るのかな・・
なんてのは検索したうちに入らんよ。
0319デフォルトの名無しさんNGNG
>>317
そうでもない。
学校教育の問題(わからないことがあったらなんでも先生に聞きなさい)で自己解決能力の無い子供は多い。
(かく言う俺も初めのころは目を覆いたくなるような恥ずい質問もした)
こういうのは身をもって身につけていくもんだと思う。

だから俺はくだらない質問を叩くのもいいと思うよ。
(ただし、ただ叩くんで無くて「ぐぐれ」の一言でもつけくわえて)
叩かれたら自分の質問が恥ずいって気づくでしょ。
安息の地を提供すべきではないと思う。
0320デフォルトの名無しさんNGNG
      ,.,.,、,....,、、., 、,、..,_       /i  
     ;'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
    /'、;: ...: ,:. :.、.;;.. .:: _;.;;.::‐'゙ ヽ  ̄  
    !:::: `"゙' ''`゙ ゙`´´´` ::::::::::::::::}
    ミ:::::::;;;;、;ノ''''''''ヽ,,,,.;;;;;;;;::::::::::::::)
     {:::::/ ..、,、,..,,、、., 、,、..,_   /   /ヘ
     ,>、; .'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
      !(`| '、;: ...: ,:. :.、.;;.. .:: _;.;;.::‐'゙  ̄   ________
.     ヽハ  `"゙' ''`゙ ゙`´´´` /    /
.       `ヘ    -====-   ,/~   < おまえら喧嘩やめろ。と言ってみるテスト
___.   ヽ、   ̄ ̄   ,イ       \
|逮 捕|  ,,-|::`-、__ _,,-'~:::|ヽ、       ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ _,-'  !  :::::::::::::::  /  !''‐-、,,_
   _,,-''' i  \  ::::::   /    |    ~'''‐-
-''''~    | /\\    //\ /
  エビフライ職人

0321デフォルトの名無しさんNGNG
近頃は恥ずいと思わずに逆ギレして煽るようです
0322デフォルトの名無しさんNGNG
>>321
そうなんだよね・・・世も末だ・・・
0323ageNGNG
      ,.,.,、,....,、、., 、,、..,_       /i  
     ;'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
    /'、;: ...: ,:. :.、.;;.. .:: _;.;;.::‐'゙ ヽ  ̄  
    !:::: `"゙' ''`゙ ゙`´´´` ::::::::::::::::}
    ミ:::::::;;;;、;ノ''''''''ヽ,,,,.;;;;;;;;::::::::::::::)
     {:::::/ ..、,、,..,,、、., 、,、..,_   /   /ヘ
     ,>、; .'`;、、:、. .:、:, :,.: ::`゙:.:゙:`''':,'.´ -‐i
      !(`| '、;: ...: ,:. :.、.;;.. .:: _;.;;.::‐'゙  ̄   ________
.     ヽハ  `"゙' ''`゙ ゙`´´´` /    /
.       `ヘ    -====-   ,/~   < マジ喧嘩ワラタ。と言ってみるテスト
___.   ヽ、   ̄ ̄   ,イ       \
|逮 捕|  ,,-|::`-、__ _,,-'~:::|ヽ、       ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ _,-'  !  :::::::::::::::  /  !''‐-、,,_
   _,,-''' i  \  ::::::   /    |    ~'''‐-
-''''~    | /\\    //\ /
  エビフライ職人
0324デフォルトの名無しさんNGNG
VC初心者スレを復活させるか?
以前あったが落ちたんだよな。

でもなぁ、そういうスレすら探さないかもなぁ。
>>1にVC系スレの相互リンクでもあれば誘導できるんだろうけど。
0325デフォルトの名無しさんNGNG
>>324
     【 0から始めるVC++ 初心者   】

     で、だれかたてて。
     ここみたいな規制はあんまりなしにしてね。
     どんな素人でもどんどん質問できるスレで。
0326デフォルトの名無しさんNGNG
ここも規制があるわけじゃないんだけどな。
ここ(というかほとんどの言語スレ)は一般の技術系BBS/MLのスタンスで、
>>325のは2chぽくほとんどなんでもアリってスタンスかな。
立てるならもうちょい案をつめないか。
>>1用のテンプレとか。
0327デフォルトの名無しさんNGNG
>>324
>>325
VC++のことだけじゃなく、具ぐるの初心者講座も必要かな。
もしよかったら、書くよ。
0328デフォルトの名無しさんNGNG
重複質問やリファレンスに載ってるような関数の使い方を聞かれても
親切丁寧に教えるスレってことだよな?

回答者の根気が続くだろうか…
0329デフォルトの名無しさんNGNG
明らかにネタと思えるものにもマジレスしなきゃいけないの?
0330デフォルトの名無しさんNGNG
ま、試験的に立ててみるか。

タイトル:【初心者】0から始めるVC++バージョン1

1のテンプレ:
自分は初心者だと思う方や検索しても意味がよくわからなかったという方
のためのスレです。なるべく自分の状況を詳しく書いて質問してください。

回答者も詳しく丁寧に教えてあげてください。
0331デフォルトの名無しさんNGNG
回答者の善意に依存する以上、ネタはカンベンしてホスイ・・・。
0332デフォルトの名無しさんNGNG
>>330
もう少し環境・状況を詳しく書いてください
ってレス大量発生の予感
0333デフォルトの名無しさんNGNG
単に質問に答えるスレではなく、初心者の自立を助けるスレに育ってホスイ。。。
0334デフォルトの名無しさんNGNG
>>332
環境はどのスレでもほとんど書いてないから大丈夫だろう。
状況を詳しく書くことが大事ってことをそこで学んでもらえれば・・・
0335デフォルトの名無しさんNGNG
答えを直に書くんじゃなくて、
その答えにたどり着くまでの道のりを答えるスレにして欲しい

MSDNのココにある、とか、ぐぐるでキーワード〜〜で検索すれ、
とか
0336デフォルトの名無しさんNGNG
タイトル:【ようこそ】VC++初心者駆け込み寺 Ver1.0【虎の穴へ】
0337デフォルトの名無しさんNGNG
1に追加希望

質問者3か条
・エラーのときは必ずそのエラーメッセージを書きましょう
・問題の発生するプログラムを示すときは勝手に編集せず、出来るだけ問題の再現する状態でコピーしましょう
・なぜそう思ったのか、疑問の根拠を書きましょう
0338デフォルトの名無しさんNGNG
いっそのこと1に質問用テンプレも書いちゃおうか。
------------------
質問の例
環境:Windows2000+サービスパック2、IE5.5+サービスパック2
○○をしようと思ったのですが、実行時に「***」という内容の
エラーダイアログが表示されて実行できません。
どうすればよいのでしょうか?

○○をしようと思ったのですが、やり方がわかりません。
「××」というキーワードでGoogle検索し、「***」という
ところまでわかったのですが、「###」の部分がわかりませんでした。
○○のやり方を教えてください。

××××
○○○
******
というコードを書いたのですが、2行目で「##」というエラーメッセージが
出てビルドできませんでした。
どうすればよいのでしょうか。
------------------
って全然2chぽくないな。
0339デフォルトの名無しさんNGNG
なんだか初心者用スレに限らずどの質問スレにもあてはまるような
良テンプレの予感。
0340デフォルトの名無しさんNGNG
>>338
いいね。これも追加してはいかが?

××××
○○○
******
というコードを書き、コンパイル、リンクともにうまくいきました。
しかし、意図した通りに動きません。〜のように動いて欲しいのですが、
どうすればよいのでしょうか。
0341デフォルトの名無しさんNGNG
>>340
最後の
> 〜のように動いて欲しいのですが、
がミソだね。
「意図したとおりに動かない」ばっかり言って、どう意図しているのか書かないやつが多すぎるから。
0342338NGNG
>>337の方がシンプルでいいかもしれん。
質問の具体例は2とかに書いた方がいいね。
2以降にgoogleの誰かが言ってた基本的な使い方や
初心者用参考サイト/書籍なんかもあったら便利かも。
0343デフォルトの名無しさんNGNG
1でここ
http://www.hyuki.com/writing/techask.html
にリンクすることも忘れずに
0344デフォルトの名無しさんNGNG
>>337と同じく回答者にも>>335のように
・回答する場合はその答えに至るための「コツ」も書いてくれると助かります。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
とかあったらいいかもね。

0345デフォルトの名無しさんNGNG
まとめてみた。
http://www.geocities.co.jp/Beautycare/4965/public/template.html
0346デフォルトの名無しさんNGNG
>>345
ごく
0347デフォルトの名無しさんNGNG
>>345
その他C++/VC++スレ(こことか)へのリンク忘れてる
0348デフォルトの名無しさんNGNG
こっちから誘導するのはわかるがあっちからもリンクいるか・・・?

0349 NGNG
>>345
あ、すごい
0350デフォルトの名無しさんNGNG
>>345
ブラボー!

Google,こんなんで良いかな。。。。

検索エンジンGoogleの使い方

http://www.google.com/intl/ja/

プログラム作成で問題が起こったとき、サンプルコードが見たいとき、
あるいはプログラムのアイデアが欲しいとき、検索エンジンは大きな
力を貸してくれます。ここでは、Googleの効果的な使用方法を簡単に
示したいと思います。

Googleでは言葉を使った検索を行いますが、検索後の該当ページが多
すぎたり、関係のないページが大量に表示されたりすることもあります。
こんなときに、以下のような方法で検索対象を絞り込むことが出来ます。

1.AND 検索
AND 検索では、指定した複数の言葉を含むページを検索します。

例)CString CMap

上記のように、複数の言葉をスペース文字で区切って入力します。
この場合、CString と CMap という言葉を両方含むページのみを検索
できます。

2.OR 検索
OR 検索では、指定した複数の言葉のどちらか、あるいは両方を含む
ページを検索します。

例)CString|CMap

上記のように、複数の言葉を|文字で区切って入力します。
この場合、CString と CMap という言葉のどちらか、または両方を含
むページを検索できます。
0351デフォルトの名無しさんNGNG
続き

3.not 検索
not 検索では、指定した言葉を検索対象から除外することが出来ま
す。似たような言葉が大量にヒットしてしまう場合に、対象を絞り
込むのに便利です。

例)CString -CStringList

上記のように、複数の言葉の間にスペース文字を入れ、除外したい言葉
の先頭に-文字を付けます。
この場合、CString という言葉は含むが、 CStringList という言葉は
除外するように指定できます。つまり、CString や CStringMap などを
含むページは検索されますが、CStringList を含むページは検索されな
いわけです。

4.フレーズ検索
フレーズ検索では、スペース文字を含む言葉を検索できます。

例)"Microsoft Windows"

単に Microsoft Winodws と指定して検索すると、1.のAND検索と同じ
になります。つまり、Microsoft と Winodws という文字を両方含むペ
ージが検索されてしまいます。そこで、これらを"(ダブルコーテーショ
ン文字) で囲みます。こうすることによっで、スペース文字を含む言葉
を検索することが出来るようになります。


以上はごく基本的な機能ですが、これを知っているだけでも検索効率がずいぶ
ん違ってきます。まずは習うより慣れろで、実際に試しながら覚えてください。
0352345NGNG
Googleについてをテンプレに追加。
1がちょっと長いかなぁ。
0353350NGNG
>>352
1はいいと思うよ。
Googleがちょっと長いかな(スマソ)。改行を少なくしたり、文章アレンジ
してみてください。
0354デフォルトの名無しさんNGNG
例に対するコメントが長すぎるね

1.AND 検索 (例)CString CMap
CString と CMap の両方の単語を含むページを検索します

2.OR 検索 (例)CString|CMap
CString と CMap のどちらかを含むページを検索します

3.NOT 検索 (例)CString -CStringList
CString は含むけれど CStringList は含まないページを検索します

4.フレーズ検索 (例)"Microsoft Windows"
Microsoft Windows という文を含むページを検索します
スペースや + | などの記号のような特殊な文字も検索できます
(C++をキーワードに検索するには "C++" のようにする必要があります)
0355350NGNG
>>354
簡潔でよいと思います。
0356354NGNG
まだスマートじゃない
改良の余地があると思うんだけど
誰かプリーズ
0357デフォルトの名無しさんNGNG
2以降は少々長くてもいいと思うよ。
0358354NGNG
というより
http://www.google.co.jp/intl/ja/help/basics.html
http://www.google.co.jp/intl/ja/help/refinesearch.html
ここにリンクはったほうがよくない?
0359350NGNG
>>351
書きまちがい、スマソ。
CString や CStringMap などを含むページは検索されますが
↓
CString を含むページは検索されますが
0360デフォルトの名無しさんNGNG
>>358
リンクはあったほうが良いと思うが、一応スレ内にも説明があったほうが
分かりやすいと思われ。
0361デフォルトの名無しさんNGNG
んでどうなのよ、本当に立てる?
0362デフォルトの名無しさんNGNG
作りたいものがない場合はどうすればいいのでしょうか?
このまま終わりたくはありません。
0363デフォルトの名無しさんNGNG
おとなしく終われ
0364デフォルトの名無しさんNGNG
>>362
マジレス。
とりあえずその道は諦めた方がいいんじゃないかなぁ?
と思うのは俺だけ??
0365デフォルトの名無しさんNGNG
>>362
↓のスレにあるプログラムを片っ端から実装しろ。

http://pc.2ch.net/test/read.cgi/prog/1020766311/l50
0366362NGNG
ここにいる人たちは何でそんなにやる気が持続するのですか?
もう死にたい。
0367たわむらNGNG
ダイアルアップのショートカット作成について教えてください。

早速質問ですが「Windows2000」で「デスクトップ」に「ダイアルアップのショートカット」を
作成したいのですがその方法がわかりません。

ダイアルアップのエントリーを「RasEnumEntries」で取得し
デスクトップのフォルダ名を「SHGetSpecialFolderLocation, SHGetPathFromIDList」
で取得するまでは分かりますが、その後どうやって「デスクトップにショートカット」を
作成してよいのか分かりません、ご存知の方ご教授お願いできますでしょうか?

開発環境:
  Windows2000
  VC++6.0
0368初心者NGNG
MFC(・∀・)イイ
生APIより分かり易い
0369デフォルトの名無しさんNGNG
>>367
俺はやったことないんだけど>>2のリンクのVC++MLの過去ログで
ショートカット 作成
を検索するといろいろ出てくる。
こんなの
http://search.acty-net.ne.jp/mfc_search/archive/1999-2/msg04145.html
とか。
0370たわむらNGNG
>>369デフォルトの名無しさん返信ありがとうございます。
たしかにショートカット 作成で検索するとたくさんヒットします。
私も先週からネットで検索し色々調べましたが、通常のファイルの
ショートカット作成、インターネットショートカット作成などは
ありましたが、ダイアルアップのショートカット作成を見つけることが
出来ませんでした。唯一見つかったのがWin9x対応のサンプルでした。
Win9xとWin2Kでは、ダイアルアップ情報の格納方法・格納場所が
違ってたりしてだめでした・・
自分で調べて出来ることはやってみましたが、結果は×・・・(TT)
どうやればよいのやら・・・

0371デフォルトの名無しさんNGNG
>>370
>通常のファイルのショートカット作成、インターネットショート
>カット作成などはありましたが、
ほとんど同じだと思う。違いは、IShellLink::SetPathの代わりに
IShellLink::SetIDListでダイアルアップ接続の実体(ショートカ
ットの参照先)を設定することだと思うが。。。はずしてたらすまそ。
0372デフォルトの名無しさんNGNG
>>362
362は仕事でプログラムしてるの?なら興味が向かなくてもなにか簡単な
アプリやクラスをまずは作ってみて、興味がでるようにするのが良いと
思う。プログラムすることを好きにならなければ、やる気を持続させるの
は難しいと思う。個人的には、最初はそういう自己満足も大切なんじゃな
いかな、と思う。

仕事で無いなら、苦労してまでプログラムしなくても良いと思うけど。。。
0373371NGNG
>>370
Win2000のダイアルアップの場所はIShellFolderを使って
コンパネの下のネットワークとダイヤルアップ接続の下を地道に検索する
とか・・・。
0374デフォルトの名無しさんNGNG
初歩的質問で申し訳ないんですが。。
テキストファイルから一行読み出し
->読み出した行を削除
を実装したいのですが削除で悩んでます。
CStdioFile f;
f.ReadString(strLine);//削除するフォルダへのパスを読み出し
int iCount=strLine.GetLength();//読み出したサイズ
f.SetLength(iCount);//削除(??)

当然動かなくて困ってます。
自分で調べますので
ヒントだけでもいただけませんでしょうか?
よろしくお願いします。
0375デフォルトの名無しさんNGNG
>>362
作りたいものを無理にでも見つけれ。
0376デフォルトの名無しさんNGNG
>>374
1行読み出す度にファイルを書きなおしたりするの?
0377デフォルトの名無しさんNGNG
>>376
一行読み出せたら読み出した
内容(とあるファイルへのパスなんですが)を
処理するだけなので
その度書き直すつもりです。
なにかおかしなことしてたら指摘してもらえると助かります。
0378デフォルトの名無しさんNGNG
376>>
追記です。
パスを読み出すともうファイルに用はないので
Closeしてます。
その時読み出したTextのみ消せたら、、
で悩んでます。
0379デフォルトの名無しさんNGNG
>>378
一時ファイルを作るしかないんじゃないかなぁ。
1.オリジナルファイルを複製
2.複製したファイルから一行読み込む
3.複製したファイルから二行目以降をオリジナルファイルに上書きする
4.複製したファイルを削除
0380デフォルトの名無しさんNGNG
>>379
そうなんですか、
残念です。
てっきり
二行目の前にファイルポインタ移動して
一行目を捨てる、、
みたいな方法と思ってました。
参考になりました。
今から実装してみたいと思います。
ありがとうございました。
後日報告いたします。
0381デフォルトの名無しさんNGNG
どうしても一行ずつ処理しないと駄目?
一回EOFまで読み込んどいてポインタ移動して上書きするとか。
0382374NGNG
みなさん、アドバイスありがとうございます。
>>381
EOFまで全てメモリにいれること考えたら
読み出すファイルが大きくなった時
大量のメモリを食うのでは?と心配です。
テキストファイル読むくらいで
メモリ心配してしまうっていうのは考えすぎで
>>381
さんの言うようにしても大丈夫なんでしょうか?
0383デフォルトの名無しさんNGNG
>>382
メモリが心配になるほど大量のデータを、
読んでは消して、読んでは消して、
なんてやってたらものすごい時間かかりそう。
全て一度にが嫌なら1MBずつ読んでみては?
0384デフォルトの名無しさんNGNG
自己保身age
0385質問者NGNG
質問ッ!
CScrollViewのスクロールバーを常時出しっぱなしにしたいのです。
ドキュメントが小さいときはCEditのように「つまみ」部分だけ消える、みたいな。
どうしたらよいのでしょうか。

0386デフォルトの名無しさんNGNG
VFC-LINKのメールから必要な情報だけ残して無駄な文章を全て破棄するにはどうすればいいですか?
0387デフォルトの名無しさんNGNG
>>382
余程大きくない限りは大丈夫だと思うけどなあ。
実際のファイルサイズがわからないからなんとも言えないけど。
0388デフォルトの名無しさんNGNG
>>386
すべて削除するか、unsubscribeのメールを
majodormoに送りましょう。
0389デフォルトの名無しさんNGNG
>>386
奴の話題はここで。
http://pc.2ch.net/test/read.cgi/prog/1023422827/l50
0390デフォルトの名無しさんNGNG
Windowsメッセージなどの一覧はどこかで見れませんか?
WM_***やAFX_***など。
0391デフォルトの名無しさんNGNG
>390 spy++で
0392デフォルトの名無しさんNGNG
>>390
PC内からWIN32API.CSVを検索してみそ。
0393デフォルトの名無しさんNGNG
>>392
どうもありがとうございます。
知らないものまでたくさん出てきました。
>>391
spy++ではWindowがでているところのメッセージしか見れなくないですか?
spy++はいまいち使い勝手がよくないです...
0394デフォルトの名無しさんNGNG
>>393
いや、メッセージオプションで表示されるメッセージリストのことをいいたかったんだけどサ。
0395デフォルトの名無しさんNGNG
>>393
一応、メッセージオプションの「追加するウィンドウ」項目で
いろいろ選べますよ。親や子、すべてのウィンドウなど。。。
0396デフォルトの名無しさんNGNG
定義されてる一覧を見たかったんだろ
0397デフォルトの名無しさんNGNG
あるボタンを押したときに、次のような処理でウィンドウ内のイメージをビットマップに落とそうとしています。

 memDC.CreateCompatibleDC(pDC);
 bm.CreateCompatibleBitmap(&hMemDC, w, h);

 obm = memDC.SelectObject(&bm);
 memDC.BitBlt(0, 0, w, h, pDC, 0, 0, SRCCOPY);
 memDC.SelectObject(obm);

 GetDIBits(memDC, bm, 0, h, data, ...);

問題のビットマップの落とす処理が、OnDrawの時に渡されるpDCを使って呼び出すととうまく動くのですが、
ボタンを押したときに呼ばれるところから、CClientDC dc(this)として作ったDCを使うとイメージがとれません。

OnDrawに渡って来るのは、CPaintDCですがこれはOnPaintでしか使わないようにMSDNで
書いて有りました。

CClinetDCを作った後に、OnPrepareDCもやってみました。

理由がわからず、途方にくれています。
0398デフォルトの名無しさんNGNG
>397
よく分からんけど、
CreateCompatibleBitmapの引数には
&hMemDC(memDCの間違い?)では無くpDCを渡したほうがよくない?と言ってみる
0399397NGNG
>398

その通りですた。感謝感謝。
でも、なんでか理解できてません。
こんなヘタレに解説して下さる奇特な人の降臨キボンヌ。
0400デフォルトの名無しさんNGNG
397
そもそもthisのウィンドウにクライアントないんじゃない?
枠内、白色になってる?
0401デフォルトの名無しさんNGNG
へっ?
クライアント領域が存在しないという意味ですか?
それとも、thisがCWndとかのサブクラスで無いという意味ですか?
0402デフォルトの名無しさんNGNG
a.cppで作ったクラスをb.cppで使うにはVC++ではどうすればいいんでしょうか?
0403デフォルトの名無しさんNGNG
>>402
いろいろ出来ると思うけど
a.cppをプロジェクトに追加するとか
a.libを作成するか、dllにするとか
make.makファイル作成するとか。
0404デフォルトの名無しさんNGNG
#include "a.cpp"
0405デフォルトの名無しさんNGNG
a.cpp

#include <afxsock.h>
#include "stdafx.h"

namespace Sat
{

class CHttpServer
{
public:
CHttpServer();
~CHttpServer();
void Start();
void Stop();

private:
CSocket *Sock;
};

〜

}

b.cpp
using namespace Sat;

CTinyhttpApp::CTinyhttpApp()
{
// TODO: この位置に構築用コードを追加してください。
// ここに InitInstance 中の重要な初期化処理をすべて記述してください。
CHttpServer Ser();
}

error C2871: 'Sat' : 存在しないか名前空間ではありません。
error C2065: 'CHttpServer' : 定義されていない識別子です。
error C2146: 構文エラー : ';' が、識別子 'Ser' の前に必要です。
error C2065: 'Ser' : 定義されていない識別子です。

a.cppとb.cppは同じプロジェクトにいます。
0406デフォルトの名無しさんNGNG
ダイアログエディタ使ってるんですけどコントロールパレットが消えちゃいました・・・
どないすればええでしょう・・
0407デフォルトの名無しさんNGNG
406
メニューバーか適当なツールバーを右クリック
0408デフォルトの名無しさんNGNG
ツールバーの適当な余白で右クリック→コントロール
0409デフォルトの名無しさんNGNG
405
a.hに書かれるべきクラスの宣言がa.cppにいるのがふしぎ。

/* b.cpp */
#include "a.h"
・
・
・
0410デフォルトの名無しさんNGNG
あった♪
ありがとうございます>>407
0411デフォルトの名無しさんNGNG
>>409
解決しました。納得もしました。みなさんありがとうございました。
0412デフォルトの名無しさんNGNG
>397
ダイアログベースでボタンを追加して以下のようにしてみますた。

void CTttDlg::OnCapt()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
CClientDC dc(this);

CDC memDC;
CBitmap memBitmap, *pOldBitmap;

memDC.CreateCompatibleDC(&dc);
memBitmap.CreateCompatibleBitmap(&dc, 100, 100);
pOldBitmap = memDC.SelectObject(&memBitmap);

memDC.BitBlt(0, 0, 100, 100, &dc, 0, 0, SRCCOPY);


dc.BitBlt(0, 101, 100, 100, &memDC, 0, 0, SRCCOPY);
}

これでボタンを押すと円がコピーできたけど関係ない?
0413デフォルトの名無しさんNGNG
>>399
とりあえず俺の考えを書いておく(経験的なもので裏づけは無い)

CreateCompatibleBitmapは、DCと互換性のあるビットマップを作るだけで、そのビットマップの種類を指定することは出来ない。
互換性さえあれば32bitだろうがパレットだろうがおかまい無しってこと。
んで、現在の仕様は、引数に渡されたDCに選択されているビットマップと同じフォーマットのビットマップを複製するものと思われる。
CreateCopmatibleDCされたばかりのビットマップにはどんなビットマップが選択されてるかわかりゃしない。
(俺の経験では2bitのモノクロビットマップ)
だからCreateCompatibleBitmapに作成したばかりのDCを渡すとうまくいかない、のではないかと予想。
0414デフォルトの名無しさんNGNG
>412

16bppや32bppでカラーの円だと色がおかしくなりませんか?
おかしくならないとしても、memBitmapにはモノクロとしてしか格納されていないのでは。

>413
解説ありがとうございます。大変勉強になりました。
MSDN探したら、ずばりのKBがありました。
Q139165 PRB: Memory DC Produces Monochrome Images

When creating a compatible bitmap for the memory DC, the handle to the memory DC is used
as the first parameter to the call to CreateCompatibleBitmap(). This create a monochrome
bitmap because a memory DC created with CreateCompatibleDC() is given a 1x1 monochrome
bitmap as its default bitmap.

教訓
screenDC --CreateCompatibleBitmap--> bitmap A
   |
CreateCompatibleDC
   |
   V
memoryDC --CreateCompatibleBitmap--> bitmap B

bitmapAとbitmapBのbppは異なる(screenDCがモノクロで無い限り)
サイズはCreateCompatibelBitmapで指定しますね。
0415デフォルトの名無しさんNGNG
>414
それはCDCのオブジェクトが最初から持っているビットマップがモノカラー1×1なのでは?

0416デフォルトの名無しさんNGNG
言語障害ですか?
0417413NGNG
>>414

お、俺の予想当たってるね
#言うまでもないが414の”2bitのビットマップ”->"1bitのビットマップ"
0418デフォルトの名無しさんNGNG
>416
へ?
だから君は今作ったばかりのメモリDCを引数にコンパチなビットマップを作ると
モノカラー1×1のビットマップのコピーになるって言ってたよね。だからCClientDCのdcにも懐疑的なんでしょ?
>412はCClientDCのオブジェクトでCreateCompatibleBitmapしてるけど別にこれは良いのでは?といいたい。
CDCのオブジェクトでCreateCompatibleBitmapしたのならモノカラー1×1になるんでは?ということ。(>397ではそうしてる)
CClientDCはコンストラクタが適切な色深度やフォーマットにしてくれるんだと思ってた。

0419デフォルトの名無しさんNGNG
>418
> CClientDCはコンストラクタが適切な色深度やフォーマットにしてくれるんだと思ってた。
CDCとCClientDCの違い知ってるか?
コンストラクタ見たのかと問い詰めたい。
0420デフォルトの名無しさんNGNG
>419
いや、知らない。
つーか>412のdcをつかってCreateCompatibleDCするとなんかまずいの?
0421デフォルトの名無しさんNGNG
間違い。「CreateCompatibleBitmapするとなんかまずいの?」です。
0422デフォルトの名無しさんNGNG
>>420
まずくない
>>414が勘違いしただけ
0423414NGNG
>414が勘違いしただけ

です。
memBitmap.CreateCompatibleBitmap(&dc, 100, 100);
pOldBitmap = memDC.SelectObject(&memBitmap);
のDCの指定部分を取り違えました。
0424デフォルトの名無しさんNGNG
デバッグモードでは問題なく動作して、リリースモードでコンパイルすると

Xxxx.cpp
xxxxview.h(123) : error C2509: 'GetDocument' : このメンバ関数は、'CXxxxView' クラス内で宣言されていません。

とエラーが出る。
CXxxxViewはCViewを継承しているんだからGetDocumentは持ってると思ったんだけど。
引っかかってるのは以下の箇所。

#ifndef _DEBUG // XxxxView.cpp ファイルがデバッグ環境の時使用されます。
inline CXxxxDoc* CXxxxView::GetDocument()
{ return (CXxxxDoc*)m_pDocument; }
#endif

何をやってくれるコードかよくわかんないし、
リリースモードでコンパイルするときには関係ないんじゃないか?
と思ってコメントアウトしたらコンパイラは通ったんだけど、
Viewに特定の描画を行ったり、ファイルを読み込もうとしたりすると、例外処理でこけるようになった。
どうしたらいいんだろ。
最近の過去ログを見ていると、デバッグモードでの配布は問題があるみたいだし。
0425デフォルトの名無しさんNGNG
GetDocumentはデバッグ時はcppファイル内のものが使われ、リリース時は
.h内のものが(インラインで)つかわれます。
クラス内にpublicなメンバ関数として宣言されていますか?
0426デフォルトの名無しさんNGNG
Windowsでプログラムするときは以下の流れでいいのですか?

Windowsプログラムの流れ
イベントが始まる。
(プログラムが開始される、キーが押されるなど)
↓
WindowsからMessageがくる。
WM_PAINTとか、ON_COMMANDとか、On_LButtonDwnとか
↓
メッセージマップでメッセージと対になっているメンバ関数と結ばれる。
OnPaintとか、OnCommandとか、LButtonDwnとか
On**という関数はWM_**というメッセージが。来たら呼ばれる
↓
メンバ関数の中で定義された関数、変数などの処理が呼ばれる。
↓
関数の中などの記述が実行される。
(イベントが実行される。)
0427デフォルトの名無しさんNGNG
初心者スレ立てようと思ったらスレ立てすぎって怒られた。
0428デフォルトの名無しさんNGNG
>>427
それは残念。後日改めて・・・でしょうか?
0429424NGNG
>>425

CXxxxDoc CXxxxView::GetDocument() // 非デバッグ バージョンはインラインです。
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CXxxxDoc)));
return (CXxxxDoc*)m_pDocument;
}

↑これもひっかかる要因になってたので封じてました。
有効にして動かしてみたものの、やっぱり同様の操作でこける……。
どこで転んでいるのか追ってみたものの、ソース上では例外処理は起きなかったっす。
(なんか、変なアドレスとアセンブリの命令っぽいのが
ずらーっと表示されるウィンドウの中で力尽きる模様)
0430デフォルトの名無しさんNGNG
>>426
基本的にいいと思いますよ。
0431426NGNG
>>430
基本的に、といいますと細部はまだ甘いですか?
まだまだです。
どうもありがとうございました。
またよろしくお願いいたします。
0432デフォルトの名無しさんNGNG
>>429
新しいプロジェクト作って比較してみれば?
だいたい原因は予想つくけどさ。
0433429NGNG
>>432
その「予想のついている原因」と、
それの解決方法を示してもらえると助かるんだが。
それと「新しいプロジェクトを作って比較」の意味も。
一から作り直すってこと……?
0434デフォルトの名無しさんNGNG
>>433
それはあなたが確認するんだよ。
0435デフォルトの名無しさんNGNG
クラス,関数はどうやって理解してますか?
コマンドみたいに地道に覚えるしかないでしょうか?
0436デフォルトの名無しさんNGNG
使うときに覚える。
普段から英単語見たく勉強してるヤツ居る?
0437デフォルトの名無しさんNGNG
>>435
覚えない
慣れるか、たいていは使うときにヘルプ見る

>>436
.NET クラスライブラリは一通り目を通そうと思ってるけど、なかなか膨大だね
0438デフォルトの名無しさんNGNG
こんな処理がしたい
クラスライブラリさがす
あった  使う
なかった ほか探す
探してもなかった 自作する
ですか?
0439デフォルトの名無しさんNGNG
使うときにヘルプ見て、そのときについでにそのクラスのメンバ関数一覧も
目を通しておく。(CWndなどはちと多いけど。)
そういうことを何回か繰り返せば、「あー、あんな関数あったっけなー」と
思い出したりする。
それくらいでいいんじゃなかろか。
0440デフォルトの名無しさんNGNG
まあだいたいこのクラスにはこんな関数が用意されてるだろうな言う予測がつくからね。
0441仕様書無しさんNGNG
ActiveXの質問です。
Aと言うActiveXコントロールと、Bと言うActiveXコントロールを開発して、
htmlへ埋め込み、AとB間で制御を行いたいのですが、どのように連携を取
れば良いでしょうか?
たとえば、「Bのコントロールの一部をクリックしたら、Aの表示が変わる」
と言った感じです。
アドバイスお願いします。
0442デフォルトの名無しさんNGNG
BからAの関数を呼ぶ(COM経由)
0443デフォルトの名無しさんNGNG
>>441
AとBはお互いに完全に独立してるんかな?
だとしたら、Mediatorパターンをやればいいんじゃないかな。
0444デフォルトの名無しさんNGNG
>>441
AとBのコンテナとなるCというActiveXを作り、HTMLに貼るってのはどうかな。
もちろん、A,Bのイベントを元に両者をコントロールするのはCです。
0445443NGNG
>>444
ちなみに、それが「Mediatorパターン」なわけだけど(笑)。
0446444NGNG
>>445
まぁ、そうだけど、パターン名だけ言っても分かりずらくない?
441の聞いているのは、概念的なことではなく、実際の実現部分だと思ったんだが。
0447デフォルトの名無しさんNGNG
知らなかったんでしょ?プ
0448デフォルトの名無しさんNGNG
VC++は.net担って何が大きく変わったのですか?
0449デフォルトの名無しさんNGNG
>>448
MFCが一部変わったのと、コンパイラ、リンカの最適化が強化されたようです。
当方では、作成した実行形式のサイズはVC++6.0より若干大きくなりました。
あと、STLがらみのwarningが出なくなっているとかがあります。
機能面では、個人的には、「あまり変わってない」印象をもっています。

ユーザーインターフェースは大幅に変わりました。移行に戸惑うかも知れません。
VC++6.0に比べると、起動が遅くなり、全体的に重い印象を持ちました。
0450448NGNG
>>449
ありがとうございます。
そうすると、今までの開発手法は特に変わっていないということでよいのですね。
6で製作したのも.netでコンパイルできると。
でも、そうすると余計に.netってなに?、となりそうです。
0451449NGNG
>>450
>でも、そうすると余計に.netってなに?、となりそうです。
一応、最大の変更点は、「管理(embeded)コード」をかける事らしいです。これが
どういうものなのか良く知らないので、興味があったら調べてみてください。
他の.net(VB,C#)とも関連のある部分らしいです。違ってたらすまそ。
0452デフォルトの名無しさんNGNG
>>451
embeded?
managedじゃない?
0453デフォルトの名無しさんNGNG
マネージは新しい.netの暮らすライブラリ使うときにどうぞ、なんだね。
using namespace system;
とか宣言して使えよと。
また新しいクラス覚えないといけないね。
0454デフォルトの名無しさんNGNG
ほんと?
0455デフォルトの名無しさんNGNG
VC++でWindowsプログラムするときに
面倒だ、本当に面倒だ。
とよく言われます。
何が面倒なのですか?
RADになってないからですか?
0456デフォルトの名無しさんNGNG
>>455
GUI関係のどうでもいい部分が面倒です。
0457リアル厨房@リアル工房NGNG
VC++.netは動作が重いのでちと使いにくいかとSTLがちょっと使いにくくなったのがいまいちかな
0458451NGNG
>>452
そうでした。逝ってきます。
0459デフォルトの名無しさんNGNG
MSDNの日本語訳部分、うまく理解できますか?
標準日本語使用して翻訳しているからなのか、
房には解釈が難しいところも多々ありますが。
たまに英語ページに飛ぶし。
MSDN理解するのに何かうまい方法はないでしょうか?
VC++の理解はMSDNの理解かと、思いますが、どうでしょう。
0460デフォルトの名無しさんNGNG
>>459
英語勉強しろ 藁
0461デフォルトの名無しさんNGNG
時計や電卓作れる程度のレベルだと超初心者ですか?
あと電源落とすくらいとか。
0462デフォルトの名無しさんNGNG
>>459
私も苦手でしたが、無理やり読んでいるうちになれましたよ。
英語部分を無理して読めば、日本語部分の変な訳も(どういう英語から訳されたのか)
検討が付き、意味も分かるようになると思います。
英語はテクニカルタームですので、文法的には中学生レベルで十分と思います。
勿論、コンピューター用語は知っていなければなりませんが。
0463デフォルトの名無しさんNGNG
MFCある程度理解してもウインドウの枠などしか出来ないと思いますが
この先どうすればよいのでしょうか?
0464デフォルトの名無しさんNGNG
>>463
>この先どうすればよいのでしょうか?
それは、何をしたいのかによって答えも変わってくると思います。
仕事で使うには、Windowの生成以外にもしなければならないことが
たくさんあるでしょうし、趣味でやる場合は無理にMFCを深く理解する必要が
ない場合もあるでしょう。
0465デフォルトの名無しさんNGNG
MFCはウインドウ作成以外にも使用可能ですか?
0466デフォルトの名無しさんNGNG
>>465
もちろんです。データベースのやり取りや、OLEサポート、その他もろもろ。
詳細は、MSDNライブラリのMFCクラスのところを読んでください。
0467デフォルトの名無しさんNGNG
VC++.netでAppWizardが吐いたコードを色分けすることは出来ないでしょうか?
予約語が青くなるような感じです。
無理かな...
0468デフォルトの名無しさんNGNG
>>467
無理でしょう。
0469デフォルトの名無しさんNGNG
VC++で電卓を作る場合何が必要でしょうか?
0470デフォルトの名無しさんNGNG
>459
MSDNは英語が読めてもわかりません。関数リファレンス程度にはなりますが

>469
まだ電卓の課題やってるんですか?
0471デフォルトの名無しさんNGNG
まだやってますよ
0472デフォルトの名無しさんNGNG
質問があります。
ファイル選択ダイアログってありますよね。
その中の真ん中にあるリストなどを自作して
CFormViewに埋め込みたいのです。
リストビューにマイコンピュータなどを表示している
サンプルなどを知っている方がいたら教えていただけないでしょうか?

0473デフォルトの名無しさんNGNG
>>472
ttp://codeguru.earthweb.com/shell/explorer.html
0474デフォルトの名無しさんNGNG
>>473さん
ありがとうございます。
しかし、'atlres.h'がありません、
となってしまうのですが・・・・
0475デフォルトの名無しさんNGNG
>>471
センスないんだよ
別の道を考えれ
0476デフォルトの名無しさんNGNG
>>475
デジタル時計ならナントカなったのに...
ダイアログボックスの使い方なんでしょうね、電卓は多分...
VBから入ればよかったカモ。
0477473NGNG
>>474
WTLインストールしる。
ttp://msdn.microsoft.com/msdn-files/027/001/586/wtl31.exe
0478デフォルトの名無しさんNGNG
>>476
つーかサンプル見たでしょ?(193)
0479デフォルトの名無しさんNGNG
>>478
サンプル見ましたよ...
ほか探すか...
0480デフォルトの名無しさんNGNG
単なる四則演算電卓だったらデジタル時計より簡単じゃないかい?
0481デフォルトの名無しさんNGNG
>>480
そうなんですか?
こう、発想の貧弱さは悲しいものがあります。
BCBならナントカなりそうなのですが。
(軽く探したらラベルとボタンだけでできそうだし...)

夢は大きくネットワークプログラムしたいのに...ううぅぅ。
0482デフォルトの名無しさんNGNG
>>481
コンソールの電卓なら100行くらいで出来たよ
0483デフォルトの名無しさんNGNG
>>481
発想とかじゃなくてWinの電卓見れば大体必要なものはわかるでしょ?
関数電卓となるとちょっと面倒臭いけど。
リソースエディタでチョイチョイっとそれっぽいコントロール置いて
後はそのコントロールに対するメッセージを処理してあげればいいじゃん?
0484デフォルトの名無しさんNGNG
なんだかいくらサンプル示しても理解できなくて投げ出してるようだが
サンプル探すよりサンプル理解できるように勉強する方が先じゃなかろか。
0485デフォルトの名無しさんNGNG
電卓、電卓、で大変です。
XPのアクセス権変更は出来るようになったのになぜ電卓が出来ないんだ...
と本当に思うのです。
くそぅ...
0486デフォルトの名無しさんNGNG
なんかネタ臭いな・・・>電卓
0487デフォルトの名無しさんNGNG
>>486
ネタなら冗談抜きで安心なんですけど。
アクセス権などはダイアログボクス使わないのですが、
ダイアログボクスの連動がいまいち分からないのです。
ダイアログボックスの使い方が出ている書籍はないのでしょうか...
”MFCによるWindowsプログラミング”これは今売ってないですよ...
また、確かVC++6.0Standardにはダイアログボックスの使い方等の書籍がついていたはずなのですが、
VC++6.0StandardはVS.NET_MSDNをいい気になって買った後ヤフオクで売ってしまった...
VC++.netStandardには書籍がついているのですか?
0488デフォルトの名無しさんNGNG
AccessのマクロをMFCで外部から動かしたいのですが、どうしたらよいでしょうか・・・?
サパーリ分からないので、ご存知の方いらっしゃいましたら教えてください m(_ _)m

VC++(MFC) -> Access97のマクロ
0489デフォルトの名無しさんNGNG
>>487
そんなときは「VC++ スーパービギナーへじょいjぎえあねおいいお、:l:::::::::::::::
0490デフォルトの名無しさんNGNG
>>488
DDEでGO!
0491デフォルトの名無しさんNGNG
>>489
何やらの本探してみます。
とかいいながら今日はもう寝ますが...
0492デフォルトの名無しさんNGNG
>>487
>ダイアログボクスの連動がいまいち分からないのです
ダイアログと何との連動が分からないのか書かないと、答えるほうもアドバイス
しようがないよ。単にMFCでダイアログボックスを表示することは出来てるの?
ダイアログ上のボタンを押したときの処理(及びその追加方法)が分からないの
か、電卓だから数字の表示が分からないのか・・・。
0493デフォルトの名無しさんNGNG
>>492
時計出すにしたってねえ・・・・・出力はわかるけど入力がわからんとか?
0494デフォルトの名無しさんNGNG
>>493
時計の入力って何だろう。
0495デフォルトの名無しさんNGNG
VC初心者ですけど、よろしくお願いします。

VCからオラクルのストアドファンクションを呼び出して、
値を取得したいのですが、どのようにすればよいのでしょうか?

0496デフォルトの名無しさんNGNG
>>494
いやだから時計しかやってないから電卓での入力がわからんのかなあって。
0497デフォルトの名無しさんNGNG
495
「ATL オブジェクト ウィザード」でオラクル選べばすぐできると思うけど。
(VC Professonal Edition 以上)
0498デフォルトの名無しさんNGNG
>>491
ヒマだったので電卓のサンプル作ってみた。メインコードが250行くらい。
操作はWindows電卓に準拠で整数の四則演算しかできないが、欲しいときは
捨てメアドを用意してね。ただしBUGがあってもノークレームね。
0499491NGNG
>>498
電卓ください。
0500498NGNG
>>499
メアド書いたら送るよ。いつも使ってるメアドはやばいから、フリーの
メアド取得するよろし。
0501491NGNG
>>500
499のE-mailのところに書いてあります。
よろしくお願いいたします。
0502デフォルトの名無しさんNGNG
送ったよ。しばし待たれい。
0503491NGNG
>>498
ありがとうございました〜♪
0504デフォルトの名無しさんNGNG
>>498産、私にもください。
メルアド公開するのが怖いので、
ここに貼り付けて。
おねがいします。
0505デフォルトの名無しさんNGNG
>>504
ここだと色々ツッコミが入りそうなコードなので勘弁です。
エイヤっで作ったので色々無駄な部分もあるし・・・晒されるのはイヤです(笑)。
0506デフォルトの名無しさんNGNG
MFCはバグがあるからSDKで作った方が良い
と言ってる人を見かけたんだけど,それって正しいの?
0507デフォルトの名無しさんNGNG
>>506
・Win32 API にはバグが無い
・MFC のどこにバグがあるのかわからないので回避できない
・MFC よりもバグの無いコードを書ける
・MFC を使わないことによる生産性の低下は問題にならない

の条件が成り立つならば、正しいでしょう。
0508デフォルトの名無しさんNGNG
>506
Win32APIにもバグは結構あるぞ。
0509デフォルトの名無しさんNGNG
VS.NETのIDEの使い方は皆さんどうやって覚えましたか?
書籍はあまり見ません。
ヘルプ見ればいけるか、classwizardやリソースエディタ使えばいいのか。
そのうち林晴比古先生が、はじめてのVisualC++.net でも出すか。
ここクリックするとデバックする、ここクリックするとソリューション閉じる、
とか言うどうしようもない書籍出版か。

0510デフォルトの名無しさんNGNG
>>509
勘
0511デフォルトの名無しさんNGNG
使い方はヘルプに書いてあるでしょ。
0512デフォルトの名無しさんNGNG
>>510
勘で使えるあなたは偉い。
0513デフォルトの名無しさんNGNG
今頃.net購入。
キャッシュバック間に合うかな?
0514デフォルトの名無しさんNGNG
なんがここの奴らは
.net購入だと!?
いくらすると思ってんだ
金が無いから泣く泣く2万のvc++6standardを買ったんだぞ俺は。
0515デフォルトの名無しさんNGNG
>>514
今ならVisualC++.netStandardが\13.000-で買える罠(w
0516495NGNG
>>497 
貴重な情報ありがとうございます。

教えてもらって申し訳ないのですが、
私の環境では使えませんでした。。。
0517デフォルトの名無しさんNGNG
VC++.netStandardにはVC++6.0Standardに付いていた分かりやすいと思った
書籍は付いているのでしょうか?
6.0についている書籍は初心者にはとてもよいものに見えたのですが、
あれの最新版は出ていませんでしょうか?
0518デフォルトの名無しさんNGNG
最近スレ違いギリギリの話題が多いね
0519デフォルトの名無しさんNGNG
>>517
付いてない。
0520デフォルトの名無しさんNGNG
VC6ってそんな便利なもんついてんの?一回も見たことないや・・・・・
0521質問者NGNG
えっと、質問です。
SDIアプリケーションを作ってます。
そのアプリからさらに、ツールバーつきの別ウィンドウを出したいのですが、
別ウィンドウは、以下のどの方法を採用すればよいでしょうか。
(a)ダイアログで実装。(しかしツールバーって普通フレームウィンドウにしかくっつかないような?)
(b)フレームウィンドウで実装。(アプリケーション内に2つのフレームウィンドウ?どうやって?)
(c)別プロセスで別アプリとして起動。(そんな馬鹿な。通信が面倒くさ)

なんつーか、どうするのが普通なのかわかりません。
ただツールバーつきの別ウィンドウを出したい、それだけなんですが。
助言ください。
0522デフォルトの名無しさんNGNG
>>521
ダイアログでも、自前でツールバー作れば表示されるよ。
やり方は、ダイアログクラスのメンバに CToolBar メンバを作って
OnInitDialogのタイミングでCreateする。こんな感じ
m_oToolBar.Create( this, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP, IDC_TB_XXX );
引数は好みに応じて変えてください。
0523521NGNG
ありがとうございます、しかし‥‥
(1)IDC_TB_XXXにツールバーのリソースをつくり、
(2)ファイル内に CToolBar m_oToolBar; として、
(3)OnInitDialog()で522のCreate()文をそのまま書いてみましたが
ダイアログ上にツールバーが表示されません‥‥なぜ?
Win2000, VC++6.0。
0524デフォルトの名無しさんNGNG
>>523
ツールバーのサイズが0になってるんじゃない?
確か自分で設定しなきゃいけなかったはず
0525521NGNG
>>524
なんと。実験してみます。
0526521NGNG
とりあえずCreateの第3引数の意味を間違えていたっぽいのには気づきました。
だがしかし、LoadToolBar()、SetSizes()、SetHeight()
してもツールバーは表示されず‥‥。

0527デフォルトの名無しさんNGNG
よくしらんがShowWindowとUpdateWIndowは送ってみた?
0528521NGNG
ShowWindow()はためしにしてみました。効果ナシ。
Create()でもVisibleにしてるし。
UpdateWindow()?ちょっと調べてみます。

なにか根本的なこと、見落としてるのかな?

0529521NGNG
ここ読むことにします。↓
http://www.bd.wakwak.com/~opapa/VC/Dialog/ToolBar.htm
0530デフォルトの名無しさんNGNG
ATL COM AppWizardでCOMを作ってるんですが、CFileDialogを使おうとしたら
コンパイル時に"定義されていない識別子です"でエラーになりました。これってどうして
なんでしょうか?
AppWizardで"MFCのサポート"には、チェックを入れました。
ATLとかCOMとかよくわかってません。
0531521NGNG
SetWindowPos()したら表示されました‥‥。
これでダイアログで逝けます。
レスくれた方、アリガ�d( ´ー`)ノ
0532デフォルトの名無しさんNGNG
>>530
#include<afx???.h>
0533デフォルトの名無しさんNGNG
Windowsプログラミング初心者です。

Googleや過去スレ,サンプル集等調べたのですが分からなかったので質問させていただきます。
Explorerにプラグインで機能を追加したいと考えているのですが、その実現方法が分かりません。
この辺の説明が詳しく紹介されているHPや書籍等ありましたら教えていただけないでしょうか?

具体的には、一定のタイミングでサーバにアクセスし、情報を取得した上で、アイコンを変化or詳細表示の列追加等で実現したいと考えております。

よろしくお願いします。
0534デフォルトの名無しさんNGNG
C++は初めて使うのですが、
A、Bというダイアログを作り、
「AのCというボタンを押すと、Bを表示させる」ということをしたいのですが、
どのようにすればよいのでしょうか?
よろしくお願いします。
0535デフォルトの名無しさんNGNG
VS.NETについているVC.NETでダイアログを編集しようとしたとき
イベントハンドらウィザードを表示させようとすると(ヘルプのとおりに実行)
スクリプトエラーと出るんですけど何ででしょうか?
その後イベントハンドラウィザードは表示されますが、何も選択できません。
こういうときはどうするのでしょうか?
0536デフォルトの名無しさんNGNG
>>534
1.リソースエディタでダイアログA、Bを作る。
2.Aにボタンコントロールを貼り付ける。これをCという名にする。
3.Cが押された場合に発生するイベントに対応した場所に、
  Bを表示させる処理を書く。

これでわからないようだったら、サンプルが載っている本を買いましょう。
本を買う気がないなら、何も言わずにお星さまになって下さい。
0537デフォルトの名無しさんNGNG
>>536
レスありがとうです。
いろいろ調べてるのですが、「Bを表示させる処理を書く。」
のサンプルが載っているの本、WEBがなかなか見つからないのです。。。
ここがどうしても分からないので、お星さまになるしかないのかな。。。
0538デフォルトの名無しさんNGNG
>>537
それを考えるのがプログラム...
0539デフォルトの名無しさんNGNG
>>537
DoModal
0540デフォルトの名無しさんNGNG
VisualC++などのサービスパックはMicrosoftから落とせるのですか?
落とすとしたらどこから落とすのでしょうか?
CD来るの待っているしかないのですか?
0541デフォルトの名無しさんNGNG
>>533
英語でええかいの?
http://www.codeproject.com/atl/ietoolbartutorial.asp
0542533NGNG
>>541
情報ありがとうございます。

英語は苦手ですが、今から見てみます。
ありがとうございました。
0543デフォルトの名無しさんNGNG
533
サーバーサイドになるけど
<META HTTP-EQUIV="Refresh" CONTENT="60">
タグ使っうかjavascriptでリロードしたほうが簡単だと思うけど。
ActiveXコントロールはクライアントサイドでバイナリが動くから便利は便利
だけどで533的なことやろうと思ったら簡単そうで結構大変。
0544533NGNG
>>543
ありがとうございます。

やはり難しいんですか...
機能的には単純なのでもしかすると、簡単に実装できるのかと思っていたのですが...
自分でももっと勉強してみます。
0545537NGNG
>>539
無事に出来ました。どうもありがとうございました。
0546デフォルトの名無しさんNGNG
誰ですか?お星様とか言ってるヤシは。
0547デフォルトの名無しさんNGNG
ヘルプ見ていたら
Sorry, no topics were found for the selected link.
こんなの出てきて先に進みません。
修復の仕方はどうすればいいのでしょうか?
0548535NGNG
スクリプトエラーが起こるときと起こらないときがあるんですが何ででしょうか?
僕の頭のバグですか?
せめてスクリプトエラーが出る理由さえ分かればいいのに。。。
0549530NGNG
>>532
afxdlgs.hをインクルードしたらうまくいきました。
どうもありがとう〜
0550デフォルトの名無しさんNGNG
あるサーバーとのDDE通信が確立した後、何かしらの原因で通信に異常が起こった場合、
復帰する方法はありますか?データを取得する際呼び出すGetDdeDataの前に呼び出す
DdeTransactionの戻り値が0になってしまった後、データが正しく読めるまでSleepしながら
繰り返し呼び出すんですけど一向に復帰しません。
0551デフォルトの名無しさんNGNG
Accessと通信するDDEサーバアプリをつくっています。

DDEサーバ が起動しているにも関わらず、Accessからの接続がエラーになる
場合があります。

初回の接続(Access->DDEサーバ)は必ずうまくいくのですが、その後、接続が
できなくなり、一度できなくなると、DDEサーバアプリを再起動するまで接続が
できません。

サーバアプリ側に原因があると思うのですが、どうしてもそれを見つけられない状態です。
DDEのコールバック関数の先頭に MessageBeep(0); と書いて、通信が生じた場合に
音を鳴らすようにしてみたのですが、Accessからの通信要求時、Accessではエラーが生じ、
サーバアプリでは何もおきません(Beepがならない)。

どなたか、お力添えいただけませんでしょうか・・・・・?
0552デフォルトの名無しさんNGNG
>>551
状況が良く分からんのですが、DDEスパイとかでエラーが発生するまでの
DDEメッセージを確認できるのではないでしょうか?もうしてみましたか?
0553デフォルトの名無しさんNGNG
MSFlexGridを使っているのですが、質問させてください。
1番上のFixedRowのセルとセルの間の線をドラッグして、セルの大きさを
変えることができますが、そのタイミングで処理をしたいと思っています。
この、「セルの大きさが変わったとき」はどうやって感知したらいいので
しょうか。 OnMouseUpとかOnOLECompleteDragとかを試したのですが、
そこには飛んできませんでした。
もしご存知の方おられましたらよろしくお願いします。
0554デフォルトの名無しさんNGNG
タスクトレイからTrackpopupMenuで
メニュー出したんですがなんだか消え方が変で困ってます。
説明しにくいんですが、
pop->TrackPopupMenu(TPM_LEFTBUTTON,pt.x,pt.y,this);
のようにしてるのでメニューの外側クリックしたら消えて欲しい
んですが消えません。
いったんメニュー内で右クリックしてアクティブ(?)な状態に
してからメニュー外でクリックすると消えます。
第五引数あたりが怪しいと思っていじりまわしてみましたが
変わりません。
どこが間違ってるのでしょうか?
0555デフォルトの名無しさんNGNG
>>554
MSDN Q135788
0556554NGNG
>>555
上手くいきました。
ありがとうございます。
SetFourgroundWindow()
を使うんですね。そんな関数があることすら知りませんでした。
その関数があること知ってから
SetFourgroundWindow&TrackPopupMenu
で検索したら英語版のTrackPopupMenuに乗ってました。
日本語版の方には乗ってなかったので驚きました。
これから英語版の方にも目を通します。
調査不足の質問してすみません。
>>555さんも答えてくれてありがとです。
0557デフォルトの名無しさんNGNG
VCで作成したDLLで
DATE型を引数に渡す関数を作ったのですが、

VBからその関数を呼び出すときに、
DATE型はどのように指定したらよいですか?

0558デフォルトの名無しさんNGNG
>>557
unsigned int
0559557NGNG
>>558 レスありがとうございます。

DATEではなく、unsigned intを使うということですね。
試してみます。


。。。。初心者質問で申し訳ないのですが、
unsignedってどういう場合に使う物なのですか?

m(__)m ホントにすいません初心者で・・・
0560デフォルトの名無しさんNGNG
リッチテキストの縦書きについて質問です。VC6.0のWin2000です。

ラベルソフトのようなものを作っております。
リッチテキストで縦書きをしたいのですが、Win2000のriched32.dll
では無理だということがわかり、Win98用のriched32.dllを
EXEと同じフォルダに入れました。すると、ダイアログ内の
RichEditコントロールの中ではちゃんと縦書きになりました。
が、それをViewクラスのDCに、自前でFormatRangeやDisplayBandを使って描画
しようとしても、何も描画されません。
横書きの場合は、正常にFormatRange等で描画できます。

縦書きリッチテキストをFormatRangeなどでこちらの指定するDCに描画する場合は、
横書きの時とは違う、何か特別な処理が必要なんでしょうか?
0561デフォルトの名無しさんNGNG
warning C4244: '=' : 'int' から 'float' に変換しました。データが失われているかもしれません。
こんな警告が出ます。どうしたらいいですか?コンソールアプリです。
四則演算の計算機プログラムで出ました。
0562デフォルトの名無しさんNGNG
>>561
明示的にキャストすれば?
0563561NGNG
>>562
すいません。キャストってなんですか?
0564デフォルトの名無しさんNGNG
>>563
検索。
0565まあ、そういうなNGNG
int n;
float f = 2.01;

n = (int)f;

0566561NGNG
#include <stdio.h>
#include <conio.h>
void main()       

int su1,su2,kekka1;
float kekka2;
char enzansi;

printf("2つの整数と演算子を入力してください\n");
printf("1つ目の値を入力 =");
scanf("%d\n",&su1);
printf("2つ目の値を入力 =");
scanf("%d\n",&su2);
printf("演算子を入力   =");
scanf("%c\n",&enzansi);


if(enzansi == '+'){
kekka1=su1+su2;
printf("%d+%d=%d",su1,su2,kekka1);
}
else if(enzansi == '-'){
kekka1=su1-su2;
printf("%d-%d=%d",su1,su2,kekka1);
}
else if(enzansi == '*'){
kekka1=su1*su2;
printf("%d*%d=%d",su1,su2,kekka1);
}
else if(enzansi == '/'){
if(su2 == 0){
printf("kekka1=0");
}
else{
kekka2=su1/su2;
printf("%d/%d=4.1%f",su1,su2,kekka2);
}
}
else if(enzansi == '%'){
if(su2 == 0){
printf("計算できません");
}
else{
kekka1=su1%su2;
printf("%d%%d=%d",su1,su2,kekka1);

}
}

else{
printf("演算子がおかしいです");

getch();
}
}
0567561NGNG
どっかおかしいところを指摘してもらえたらうれしいです。
0568デフォルトの名無しさんNGNG
>>566
mainの下に厨括弧がない。
0569561NGNG
>>568
それ以外でありますか?
実行して、「演算子を入力=」で、何を入力しても
「演算子がおかしいです」
ってでます
0570デフォルトの名無しさんNGNG
>>569
取りあえず腹が立つほど読みにくいのでswich構文を覚えてくだされ。
0571デフォルトの名無しさんNGNG
つーかスレ違いだろ
ここはMFCのスレだぞ
0572デフォルトの名無しさんNGNG
>>565
勘違いだとは思うが、>>561 には...

> warning C4244: '=' : 'int' から 'float' に変換しました。
> データが失われているかもしれません。

と書いてあるから、f = (int)n; と思う。
0573デフォルトの名無しさんNGNG
ディレクトリの中身を読むにはどうすればイイ?
0574デフォルトの名無しさんNGNG
>>573
CFileFind なんてどう?
0575デフォルトの名無しさんNGNG
http://www.microsoft.com/japan/info/press/trend/vs_net/
ここに載っているVC++.netの書籍はどうですか?
良いものでしょうか?
0576デフォルトの名無しさんNGNG
>>567
scanfで'\n"入れてるからでないの?
0577デフォルトの名無しさんNGNG
マルチスレッド用に作ったメンバ関数から普通のメンバ関数を呼んだりメンバ変数にアクセスするにはどうしたら良いですか?
0578573NGNG
>>574
ありがとう!あとで抱いてやる!
0579574NGNG
>>578

…いや、遠慮しとく……(w
0580デフォルトの名無しさんNGNG
>>577
スレッド作る時に、一つくらいは好きなパラメータを渡せるように
なってるはずなので、そこにthisポインタを渡しておいてそれ経由で色々。
0581デフォルトの名無しさんNGNG
普通は構造体へのポインタわたすよね
0582デフォルトの名無しさんNGNG
質問です。
class CLine{
 public:
  CLine(int n);
  ~Cline();

  char * buf;
}
CLine::CLine(int n){
  buf = (char *)malloc(n * sizeof(char));
}
CLine::~CLine(){
  if(buf) free(buf);
}

main()
{
  CLine *pl = new CLine(0);
  delete pl;
}
とやってみたら(実際のソースはもっと複雑ですが…)デバッグエラー、とかになってメモリ解放で失敗しますた。
これをmallocやfreeの部分をnew,deleteにしたらokになりました。
これはc++の合法的なルールなのですか?つまりmalloc系とnew系は
混在させると不都合が起きますか?
0583デフォルトの名無しさんNGNG
>>582
問題ないはず。まさか、malloc() した奴を delete してるとかのオチじゃない
よな。あと、if(buf) free(buf); は、単に free(buf); でいいよ。
0584デフォルトの名無しさんNGNG
>582

VC++6 でやったけど、問題ないよ。
書いてないところがおかしいんじゃないの。
コピーコンストラクタとか代入演算子とか。
0585質問NGNG
すいません、FAQかもしれませんが。
SDIアプリからダイアログを一個出します。
そのダイアログの左肩のアイコンを
変更するにはどうしたらよいのでしょうか。
0586デフォルトの名無しさんNGNG
画面キャプチャでカーソルもキャプチャするにはどうするんですか?
0587デフォルトの名無しさんNGNG
>>585
そのダイアログはどういう手順で出してるのでつか?
0588585NGNG
>>587
リソースエディタでデザインしておいて
メインフレームでメニューのハンドらからDoModal()でつ。
0589デフォルトの名無しさんNGNG
>583-584
サンクス。たぶんmalloc()したやつをfree()したんでしょうね。
0590589NGNG
>たぶんmalloc()したやつをfree()したんでしょうね。
deleteですた。。鬱。
0591デフォルトの名無しさんNGNG
SendMessage(WM_SETICON, TRUE, アイコンハンドル);
でアイコンを変えられるよ。
0592デフォルトの名無しさんNGNG
char *p = new char(n);
と任意の数nで初期化する場合、deleteするときは配列用(?)のdelete[]を使うのが定石ですか?
delete [] p;の様に消すのですか?この場合n=1だったりした場合でも大丈夫ですか?
もしそうだとするとdelete p;の様な物はいかなるケースでもdelete [] p;で代用できますか?

0593デフォルトの名無しさんNGNG
>>592
new char(n)なら、必ずdelete p;
new char[n]なら、必ずdelete[] p;

定石も何もない。
0594デフォルトの名無しさんNGNG
あ、そうでしたか。ありがとうございます。
0595585NGNG
>>591
ありがとう!試してみる!
0596デフォルトの名無しさんNGNG
MSDN2002/4で標準C++は日本語で読めないのですか?
0597デフォルトの名無しさんNGNG
基本クラスがCFormViewのときの、ピクチャボックスを初期化する方法を教えてください。
プログラムを起動させたときにピクチャボックス内を白で表示したいのですが、OnInitialUpdate()
関数内に記述すればよいと、思ったのですが上手くいきませんでした。どなたかよろしくお願いします
0598デフォルトの名無しさんNGNG
>593
> new char(n)なら、必ずdelete p;
> new char[n]なら、必ずdelete[] p;

new char[n]はdelete pでも問題ないはず。
new int[n]はdelete [] pが普通だけど、これもdelete pで大丈夫だと思ったが。

>583
> あと、if(buf) free(buf); は、単に free(buf); でいいよ。

フントか?
0599デフォルトの名無しさんNGNG
ぜんぜんMFC限定な話題じゃない。
0600デフォルトの名無しさんNGNG
>>597
OnPaint()は。
0601600NGNG
あ、FormViewか。
0602デフォルトの名無しさんNGNG
598はレベルが低いと思います。
0603デフォルトの名無しさんNGNG
>>598
こんな奴と一緒に仕事するのは絶対イヤイヤイヤ。
0604598NGNG
お呼びですか? どっちの話?
583の方はANSI準拠なら大丈夫のようだ。Visual C++でも。
593の方は何か間違ってるか?

スレ違いsage
0605デフォルトの名無しさんNGNG
>>604
593の方は、new int[n]はdelete[] pしないとだめです。
何が起こるかというと、一見なにも起こっていないようで、
多くの場合はメモリリークが発生するそうですよ。
0606デフォルトの名無しさんNGNG
>605

デバッグヒープでも確認できますか?
delete []と[]が必要になる理由を考えると、基本データ型では不要な気がするがな。
0607605NGNG
>>606
リークの件に関しては、VisualC++での話です。しかしそもそもC++の
仕様から行くと、結果は未定義だそうです。この件は昔MSJで読んだだ
けなので、リークしているかの確認方法とかはちょっとわからないです。

あ、ちなみに私は602,603ではありません。
0608デフォルトの名無しさんNGNG
基本型の場合は delete の時の [] はなくても一応リークなしに動く。
クラスの場合は [] がないと個々のデストラクタが呼ばれないためリークするケースが多い。
いつぞやのMSDNマガジンOne Point Lesson C++でポールが言ってたよ。
結論としては基本型でもクラスでも [] はちゃんと書けということだったが。
0609598NGNG
今確認してみたが、
int* i = new int[10];
に対して
delete i;とdelete [] i;は同じコードが吐かれてて、
ベクターデストラクターは呼ばれていないぞ。

602と603はレベルがお馬鹿さんということでよろしいか?
0610デフォルトの名無しさんNGNG
>>基本型の場合は delete の時の [] はなくても一応リークなしに動く。
それは、VisualC++固有の動きですか?それともC++の仕様として定義され
ているのですか?
0611デフォルトの名無しさんNGNG
とりあえず、>>603に一票。
0612デフォルトの名無しさんNGNG
>>609
>delete i;とdelete [] i;は同じコードが吐かれてて、
>ベクターデストラクターは呼ばれていないぞ。
これもVisualC++の実装がどうなっているかというよりも、C++の仕様
が未定義なら、使用するのはまずいと思うのですが。
(VisualC++では、たまたま動作していることになるから)
0613デフォルトの名無しさんNGNG
まあ、変な癖は付けないようにしようという事だ。
0614デフォルトの名無しさんNGNG
MFCスレなのでCArray使ってください
0615598NGNG
>610

608じゃないが。
Visual C++の実装としては、という事。

言っとくけど、delete pの方が良いという事ではないからね。
Visual C++では、new int[10]とかアロケートしたものに関して
deleteと[]を付けなくても、それが原因で動かないとかヒープが壊れるという事
はないというだけ。

作法的には、[]は付けたほうが良い。
0616608NGNG
>>610 俺もポールの記事見ただけでそこまで書いてあったかどうか覚えていない、すまん。
>>613 同意
>>614 warata
0617デフォルトの名無しさんNGNG
>>614
それでは、ご要望に答えて(爆)
CArray * pArray = new CArray[10];
delete[] pArray;

・・・おあとが宜しいようで。
0618デフォルトの名無しさんNGNG
598のおかしな部分はまだあるぞ。

>> あと、if(buf) free(buf); は、単に free(buf); でいいよ。
>フントか?

free()にNULLを渡しても無視されるだけだからif文は無意味に決まってる。
0619デフォルトの名無しさんNGNG
>>618
604にて既出。
0620デフォルトの名無しさんNGNG
>>597
プロパティのタイプを四角にして白を指定するんじゃ駄目かい?
0621デフォルトの名無しさんNGNG
>618 MFCだから、正解なんだね。
ANSIでは NULLポインタは NULLではない罠。にも思うけれど(ワラ
0622デフォルトの名無しさんNGNG
保守
0623デフォルトの名無しさんNGNG
>>498
私も電卓がほしいです。
ソースください。
よろしくお願いいたします。
0624デフォルトの名無しさんNGNG
そろそろ電卓以外の話でもしませんか。
0625498NGNG
>>623
捨てメアドを用意してね。
0626デフォルトの名無しさんNGNG
SDIアプリを作ろうとしていますが…
CHtmlViewから派生させたCXXViewでサイズ変更時に画面がものすごくちらつくのですが、
解消するにはどうしたらいいでしょう?

Windows2000 / VC++6.0 SP5 / IE 6
06273NGNG
[email protected]
よろしくお願いいたします。
電卓以外もありましたらそちらもお願いいたします。
0628625NGNG
>>627
送ったよ。しばし待たれよ。
0629デフォルトの名無しさんNGNG
>>626
ViewのOnEraseBkgndでTRUEを返すといいよ。
0630デフォルトの名無しさんNGNG
>>626
クラススタイルのCS_V/HREDRAWを取ると、いいことがあるかも。
0631デフォルトの名無しさんNGNG
質問させてください。
AccsessのDBにTableのレコードが1行(AccsessのTableを作成した時に
自動的にできる)の時にGetFieldValue()で特定のフィールドの値を取得できないのですが。
Tableのレコードを追加して2行ある状態なら取得できます。
GetRecordCount()を実行しても1行の時は戻り値が0となってしまいます。
アドバイス、参考書籍などありましたら教えてください。
よろしくお願いします。
0632デフォルトの名無しさんNGNG
>>631
それって単にデータが入ってないからでしょ。
0633626NGNG
>>629 >>630
レスどうもありがとうございます。
両方試したのですが、CHtmlViewの派生クラスでは変化ナシです。
(>>630はPreCreateWindow()内で取り除くんですよね?)

OnDrawで文字を表示させてもまったく反映されず。
Viewの上にIEコンポーネントが乗ってるような???
もうちょっと調べてみますです。
0634デフォルトの名無しさんNGNG
>632
レス有り難うございます。
スミマセン。説明が足りませんでした。
一行目のレコードにはフィールドで設定した規定値が入ってます。
ただ、NULLを許可しているフィールドもあるのでそこは空白ですが
GetFieldValue()で指定しているフィールドには値が入っています。
レコードを追加すると1行目と同じレコードが追加されるのですが
2行あればGetFieldValue()で値を取ってこれるんです。
0635625NGNG
>>627
メール送れなかったぞ。メアド違ってない?イタズラならやめてください。
0636627NGNG
>>625
すみません、
[email protected]
で届きませんか?
受信箱は空になってます。
他のところとりますか。
0637627NGNG
届かなければ
[email protected]
でお願いいたします。
面倒かけてすみません。
0638デフォルトの名無しさんNGNG
CListCtrl、CListViewで通常マウスドラッグ操作での
範囲指定による複数アイテム選択が可能なのですが、
オーナー描画をした場合にこれが出来なくなるのですが
(全カラム選択みたいになってしまいアイテムドラッグになってしまう)
これを通常どうり範囲指定の処理をさせる方法知りませんか?
OnLButonDownで実装する方法でも構いません。
どなたかお知恵をお貸しください。

※文章では表現がむずかしくて分かりづらい質問でスミマセン
0639デフォルトの名無しさんNGNG
LINK : fatal error LNK1104: ファイル "nafxcwd.lib" を開けません。

上のエラーメッセージが出てビルドできません
MFCアプリケーションだと問題は無かったのですが
コンソールにしたら突然出てきました・・・
>>2-3のへんとエラー番号をMSDNで見ましたがよくわからなかったです
0640625NGNG
>>637
送ったよ。
0641637NGNG
>>625
ありがとうございます。
0642デフォルトの名無しさんNGNG
>>639
nafxcwd.libは、MFC スタティックリンクライブラリのデバッグバージョンの
様ですよ。プロジェクトのどこかでMFCを使用していたり、MFCのヘッダを
インクルードしているのではないでしょうか?
0643デフォルトの名無しさんNGNG
すみません。

_variant_t に NULL を入れることは出来るのでしょうか?

ADOのUpdateメソッドで、SQL Server のフィールドをNULLに
したいのですが・・・
0644642NGNG
>>642
ガーン・・・思いっきりafx.hをインクルードして使ってます(鬱
ごめんなさいありがとう
0645639NGNG
だった(・∀・;)寝起きなもんでスマソです
0646デフォルトの名無しさんNGNG
MFC は Microsoft が出している言語の為、VCL よりも OS 寄りの設計に
なっているのは想像できますが、生産性の点で何が VCL に対して上回っ
ているのですか?
0647デフォルトの名無しさんNGNG
MFCは言語ではありません。
0648デフォルトの名無しさんNGNG
こいつは…MFCの意味ぐらい知ってろ。
MFCってのは、「マジでファッキンなcharacter」だろ。
0649デフォルトの名無しさんNGNG
MFC...むふっC
0650デフォルトの名無しさんNGNG
MFC:manko fucks chinko.
0651デフォルトの名無しさんNGNG
MFCは、VCLよりも、生産性の点で何がVCL に対して上回っ
ているのかが良く分かりません。
0652デフォルトの名無しさんNGNG
この板では何かと比較すると必ずネタスレ化するよな
0653デフォルトの名無しさんNGNG
生産性の点に限っての事だけ教えて頂けませんか
お願いします。
0654デフォルトの名無しさんNGNG
上回っていないと思います。以上。
0655デフォルトの名無しさんNGNG
        ∧∧  ミ _ ドスッ
     プッ (´,_ゝ`)┌─┴┴─┐
       /   つ.  終了 │
     〜′ /´ └─┬┬─┘
      ∪ ∪      ││ _ε3
               ゛゛'゛'゛
0656デフォルトの名無しさんNGNG
暖炉でスマソ。

CRichEditCtrlの派生させたクラスで
を使っているのですが、CRichEditCtrl::LimitText
は、設定していないのですが、

40KByteくらい以上のファイルを開くと、文字の入力ができなくなります。
'CRLF'は入力できるのですが、それ以外は、入力ができません。
これを解決する方法はありますでしょうか…。それとも無いでしょうか…
0657デフォルトの名無しさんNGNG
CRichEditCtrlの派生させたクラスで CMyEdit
を使っているのですが、CRichEditCtrl::LimitText
は、設定していないのですが、

40KByteくらい以上のファイルを開くと、文字の入力ができなくなります。
'CRLF'は入力できるのですが、それ以外は、入力ができません。
これを解決する方法はありますでしょうか…。それとも無いでしょうか…
0658デフォルトの名無しさんNGNG
リソースエディタのダイアログやフォームに置いたコントロールのフォントを
個別に簡単に変える方法はないもんかね?
0659デフォルトの名無しさんNGNG
>>657
LimitTextを設定すればいいんじゃ?
0660デフォルトの名無しさんNGNG
>>643
_variant_t value;
value.vt = VT_NULL;
0661デフォルトの名無しさんNGNG
>>658
*.rcを直接、エディタで編集汁。
0662デフォルトの名無しさんNGNG
>>661
おお、それで逝けるんだ。ありがと。
でもコントロール増やした時とかに元に戻されたりしない?
0663デフォルトの名無しさんNGNG
>>661 >>662
それって、ダイアログのフォントのことだよね?
(下の .rcの場合、6行目)

IDD_TEST_DIALOG DIALOGEX 0, 0, 200, 100
STYLE DS_MODALFRAME | DS_SETFOREGROUND | WS_MINIMIZEBOX | WS_POPUP |
  WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Test"
FONT 9, "MS Pゴシック", 0, 0, 0x1
BEGIN
RTEXT "",IDC_STATIC1,46,47,12,11,SS_CENTERIMAGE,
WS_EX_STATICEDGE
CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_SETBUDDYINT |
UDS_AUTOBUDDY | UDS_ARROWKEYS | WS_TABSTOP,58,46,8,13
...

コントロール個別のフォントって、CWnd::SetFont() で変えられるけど、.rcいじれば変えられるんかい?
0664デフォルトの名無しさんNGNG
>>663
ダイアログのフォント言うか、コントロール別のフォントね。
ダイアログのフォントはエディタ上で変えられるのにコントロールはSetFont使うのが
めんどくさいなあと(w コントロールが多い時なんかね。
0665デフォルトの名無しさんNGNG
>>664
だから>>663は.rcのどこをいじればコントロールのフォントを
個別に変えられるか聞いてるんだよ。
0666デフォルトの名無しさんNGNG
MFCでソケットを使った通信を行いたいのですが、
recv()とかsend()とかの関数がインクルードされないみたいです。
どうやったら使えるようになりますか?
0667デフォルトの名無しさんNGNG
#include <afxsock.h>
と
AfxSocketInit()
0668666NGNG
どうもありがとう。
0669デフォルトの名無しさんNGNG
ガイシュツかとは思うのですが、CTreeCtl でフォントサイズ変えるには
どうしたらよいのでしょう? SetFont()で変えるとフォントは変わらず各
アイテムのスペースだけ変更されてしまってスカスカになってしまいマヌ
ケなんですが・・・
0670デフォルトの名無しさんNGNG
>>666
CSocket使いなされ。無駄に便利だ。
0671デフォルトの名無しさんNGNG
>>669
CFontをグローバルというかstaticにしてる?
0672デフォルトの名無しさんNGNG
>>671
そのとおりでした。単なるクラスなのをすっかり忘れてました。ありがとう
ございますた。
#SDKとMFCを同時に勉強してるもので完全に混同してました。お恥ずかしい。
0673デフォルトの名無しさんNGNG
DOS用のプログラムがあるんですけど、
コマンドを打つ手間を省くアプリを作るのに
・ボタンを押したらCMDを起動して自動的にコマンドを渡して実行
・出力結果を変数に取得・CMD終了
とさせるにはどうすれば良いですか?
0674デフォルトの名無しさんNGNG
>>673
system()かな?
0675デフォルトの名無しさんNGNG
>>673
_popenとかどうですか?
0676デフォルトの名無しさんNGNG
お前らバッチファイルを奨めてあげなさい。
0677デフォルトの名無しさんNGNG
vc++って使いづらいような気がするのは俺だけ?
0678デフォルトの名無しさんNGNG
それがこのMFCスレとどう関係があるのか小一時間問い詰める気も起きない。
0679デフォルトの名無しさんNGNG
関係無いのか
あっそう、じゃそういうことでいいや。
0680デフォルトの名無しさんNGNG
CDialogの派生クラスで、
ビューのOnDraw()のような、一部が描画されたときに
描画しなおすってことをしたいんですができるのでしょうか??
0681デフォルトの名無しさんNGNG
できまふ。
0682680NGNG
>>681
どのようにすれば?
0683デフォルトの名無しさんNGNG
え、AppWizard使ったらデフォルトでOnPaint()が追加されてるはずだけど・・・
0684ndr ◆Fs550miQ NGNG
>>683
CDialogを単純に派生しただけではでないと思われ。
そりゃClassWizardでWM_PAINTを選択すれば出てくるけど。
0685デフォルトの名無しさんNGNG
あ、新規に派生したのか。
てっきりAppWizardでダイアログアプリを作ってそのダイアログクラスだとばかり・・・
0686デフォルトの名無しさんNGNG
OnInitDialog中にフォーカスを設定したり(SetFocus、GotDlgCtrl)、
デフォルトボタンを変える(SetDefID)のって、もしかして不可能ですか?

なんか、ことごとく無視されてるっぽいんですけど...
0687デフォルトの名無しさんNGNG
OnInitDialogでreturn FALSE;
0688ズンNGNG
VC++経験約半年の半人前です。
VC++でテキスト形式のファイルを作成しました。
このファイルを.doc形式のwordでも使えるようにしたいんですが、
どうしたらいいですか?
ちなみにテキスト形式のファイルは罫線とかも自分で編集してます。
これをどーにかしてwordで使えるように保存、次回からはwordでも編集できる
ようにできないですか?
0689デフォルトの名無しさんNGNG
>>687
return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
         // 例外: OCX プロパティ ページの戻り値は FALSE となります

こっ、これか〜。このコメント削除してたから気づかんかった。
return FALSEにしたらOKでした。こんな夜更けにありがとう。
0690デフォルトの名無しさんNGNG
txtは何もしなくてもWordで開けるんじゃないの?
0691デフォルトの名無しさんNGNG
>>688
txtなのに罫線が使えるの?
0692デフォルトの名無しさんNGNG
>>691
--------------
とか書いたってことじゃないかな。
いずれにせよそのまんまで問題ないんじゃ?
0693ズンNGNG
すいません。説明不足でした。
やりたいのは、今はメニューに「保存」ボタンがあるんですが、そこに
「word(で使える)形式で保存」っていうのを追加したいんです。
それを選んだらwordが立ち上がって、という感じなんです。
罫線は692さんの言う通り ------------------ みたいなやつです。
一度txtで保存してwordで開いたら、思った通り、罫線はぐちゃぐちゃで
フォントは変わってるはで、うまくいきません。
0694デフォルトの名無しさんNGNG
>>693
OpenOfficeのソースから.docフォーマットの保存部分でも読んでみるとよいと思われ。
0695デフォルトの名無しさんNGNG
MFCウィザードでテーブルゲームをつくってるんですが
ほとんどViewクラスにコードを書いてるんです(こんなフレームワークでいいのかな?)

ところで、ウィンドウズによくある”ファイル”とか”新規作成”のメニュー
を選択するプログラムなんですけど、なんでViewクラスで処理するのですか?
私は、Frameクラスが処理するようなきがするのですが。
(Viewクラスで処理したのは、本を見ながらプログラムしたためです)
0696デフォルトの名無しさんNGNG
>>695
Viewで処理しなくてもいいと思うけど。
以前もどっかのスレ(前スレだったかな?)で同じような質問があったけど、
本は誌面の都合もあるし、説明したいことを拡散させたくないので
そういう書き方する場合もあるよ。
0697デフォルトの名無しさんNGNG
俺はviewで処理するのがスジだと思う。
その方が、MDI<=>SDIなんかの時、ちょっと便利なんじゃないか?
なんて言ってみる
0698デフォルトの名無しさんNGNG
ViewはI/Fだけにしとけ。
DocかAppで処理すれ。
0699696NGNG
Viewでしなくてもいいってだけね。
最終的にはソフトによるだろうけど。
新規作成メニューがViewを単にまっさらにするだけなら
Viewクラスに書いていいだろうし。
0700695NGNG
おかげさまですっきりしました。
0701デフォルトの名無しさんNGNG
いまだにDOCの使い道がわからない俺。
0702デフォルトの名無しさんNGNG
俺も最初は全部Viewクラスに書いてたなぁ。
0703デフォルトの名無しさんNGNG
0704デフォルトの名無しさんNGNG
差し支えなければDOCってどんな感じで使うのか教えてホスィ・・・。
俺も全部Viewに書いちゃうんだよね。
0705デフォルトの名無しさんNGNG
>>704
スプリッタウィンドウなどでViewが複数ある場合に
ペイン間でデータをやり取りするときとか。
0706デフォルトの名無しさんNGNG
あーだこーだ、ものができてから色々注文をつける客相手に手抜きアプリを作るとき
0707680NGNG
>683 684 685
ClassWizardでWM_PAINT出て来るんだ。
ClassWizard使えない状況だからわからんかった。
どーもありがとう。遅レスでスマソ
0708デフォルトの名無しさんNGNG
継続して扱うデータはDocで管理して、
データの入力・表現に伴う揮発性の高いデータは
Viewで管理って分け方だろうな。
Viewは同一Docであっても差し替え可能だし。
ちょっと違うが、MSHTMLのHTMLDocumentとかが
Docの例としては最適なんではなかろうか。
0709デフォルトの名無しさんNGNG
DOCってのはいろんなクラスのメンバ変数とか見れたり書けたりするわけ?
0710デフォルトの名無しさんNGNG
publicにしとけば見れるだろ。
0711デフォルトの名無しさんNGNG
(´д`;;)
0712デフォルトの名無しさんNGNG
privateなメンバを参照できるクラスっていうのも困ると思うんだけど
0713デフォルトの名無しさんNGNG
メンバ変数直接見られたくなかったらアクセス関数かけよ。
0714デフォルトの名無しさんNGNG
>>712
そうしなきゃいいだけじゃん・・・。
DocもC++のルールの上で設計されるわけだし。
無条件にprivateが見られるなんてないでしょ。
0715デフォルトの名無しさんNGNG
>>712は>>709を受けての答えだと思うんだが。
0716デフォルトの名無しさんNGNG
すみません、どうしてもわからないので
お聞きしたいのですが。
ダイアログベースのプログラムで
起動直後、メインウィンドウは表示せずに
タスクバーにアイコン状態で起動し、
タスクバーからいつでも
メインウィンドウ表示できるようにしたいのですが
できません。
どうやればいいのでしょうか?
OnInitDialog()のなかで
ShowWindow(SW_SHOW)
をコメントアウトしても表示されてしまうみたいで
見当もつかない状態です。
ヒントだけでもよろしくお願いします。
0717デフォルトの名無しさんNGNG
>>716
タスクバーで良ければ、
OnInitDialogでShowWindow( SW_MINIMIZE );
でいけない?
0718716NGNG
ShowWindow(SW NORMAL)
消して
その後に言われたとおりMINIMIZE指定したら
メインウィンドウは消えました。
一歩進歩なんですが
やはり最小化状態で残ってしまうので
これをなんとかしたいです。
SW MINIMIZEの直後にSW HIDEもしてみたのですが
逆にメインウィンドウが表示されてしまいました。
タスクバー以外全く表示させないようにするには
ここからどうすればいいでしょうか。
0719デフォルトの名無しさんNGNG
>>718
それはタスクバーじゃなくてタスクトレイの事では?
タスクトレイ常駐みたいな感じにするならちょっと面倒くさい。
でも「タスクトレイ VC++」辺りのキーワードで検索すれば
それらしいページは出てくると思うよ。
0720716NGNG
>>719
すみません、ボケてました!
そうです、タスクバーじゃなくて
タスクトレイのみで起動したいんでした。
すみません。
0721デフォルトの名無しさんNGNG
DocがDOQに見えた鬱だし脳
0722デフォルトの名無しさんNGNG
>>718
タスクバーに出現させたくないのなら、通常のウインドウを
見えない(SW_HIDEな)ウインドウの子にするのが一般的。
0723716NGNG
いろいろありがとうございます。
とりあえず言われたことを試してみます。
後ほどまた報告いたしますので。
0724デフォルトの名無しさんNGNG
メニューバーをリバーにしたいのだけれどどうすればよいですか?
ツールバーや他のコントロールをリバーにバンドするサンプルは
見つかるけど、メニューはどうやればいいのかがわかりませぬ。
0725デフォルトの名無しさんNGNG
>>723
モーダレスダイアログにして
ダイアログのプロパティーの可視のチェックをはずせばいいのでは?
0726デフォルトの名無しさんNGNG
Ver.2
CFormViewに割り当てられているFormを変えるには、
どうすればいいんですか。
0727デフォルトの名無しさんNGNG
('-`)
0728デフォルトの名無しさんNGNG
(。A。)
0729デフォルトの名無しさんNGNG
>>726
デフォルトのフォームはまっさらにしといて新しくフォーム何枚か作って
それ貼り付け&切り替えた方が楽じゃない?
0730デフォルトの名無しさんNGNG
>>724
リバーの中に入っているメニューバーは、実はメニューに見せかけている
ツールバーであるという罠。
0731デフォルトの名無しさんNGNG
>>730
そのメニューに見せかけたツールバーの作り方がわからんのだよ・・・
0732730NGNG
>>731
ttp://www.codeproject.com/menu/menubarxp.asp
0733デフォルトの名無しさんNGNG
現在MFCを使って独自拡張子のアプリケーションを作っています。
まだ作成途中なのですが、ふと気づくと右クリックの新規作成の中に
その独自拡張子のファイルの新規作成ができていました。
確認のために実行したことしかないんですが・・・。
これはどこが問題なのでしょうか?
0734デフォルトの名無しさんNGNG
初心者なんですが質問があります。

ドラッグ&ドロップされたフォルダの中身を検索し、サブディレクトリがあれば再帰処理でサブディレクトリ内も検索して全ファイルを表示する。

と言うプログラムを作ったんですが、表示ディレクトリのうち選択したディレクトリだけにしぼって再表示、
と言うのをやろうとしたところで悩んでしまってます。

MFC作法的にはdocクラスに検索内容を保存しておいて、再表示の際にそこから引っ張ってきて表示させればいいのだと思うのですが、
ファイルの総数はわからない状態で、再帰処理のループ中に順次保存用の変数を増やしていく、
と言う感じなんだろうと思うのですがどうやっていいのかよくわかりません。
ディレクトリ、ファイルを分けてソートしてから表示しているので保存用の変数も二種類居るだろうし、こういう場合はどのクラスにどんな変数を用意するとうまく行くのでしょうか?

それとも表示し直したいディレクトリ名で再検索する方がいいのでしょうか。
複数ディレクトリ内を選択、表示したいし、選び直しもできるようにしたいので
それはあまりうまくないかと思ってるんですが。

うまく伝えられてないかもしれませんが、どなたか教えてください。
0735デフォルトの名無しさんNGNG
つまり配列で持つと上限を越えた場合こまるってこと?
なら動的に用意するといいよ。リストとか知ってる?

自分で構造体かクラスをつくってファイル名やディレクトリかどうかのフラグをもたせて
メンバ関数で登録や削除や参照や破棄が出来るようにすると良いんじゃないかな。

>それとも表示し直したいディレクトリ名で再検索する方がいいのでしょうか。
都度検索でも良いがどのみちそういう検索をしてリストを作成する関数は必要だろう。
0736734NGNG
>>735
レスどうもです。

えーと、今はビュークラスの関数内でCStringArrayをディレクトリ内のサブディレクトリとファイル用に二つ用意して、
ソート下の後にディレクトリ>ファイルの順で描画させて、その後サブディレクトリ名をこの関数自身に渡して再帰処理させているんです。

この描画する部分をdocクラスの変数に渡してやる処理に変えればいいと思ったのですが、
この変数をどこにどう確保していいのかがよくわからないのです。

構造体の使い方がよくわからないのですが、CStringArrayを二つ含む構造体を作ればいいんでしょうか。
0737734NGNG
書き忘れてました。

>>なら動的に用意するといいよ。リストとか知ってる?

この動的に用意、がよくわからないのです。
多分これが理解できればうまく行くような気がしてるんですけれども。
0738デフォルトの名無しさんNGNG
動的とはnewやmallocなどで用意することです。
複雑になると思います。
0739NDRNGNG
>>734
頑張ってDocに木構造の構造体かクラスを作ってくんなまし。
リストだけでも逝けるかもしれんけど。
0740デフォルトの名無しさんNGNG
>>738
CArrayでもなんでも使やいいじゃん。
0741デフォルトの名無しさんNGNG
動的に扱うなら
CListクラス,
便利ですよ。
0742デフォルトの名無しさんNGNG
MFCでエクスプローラのようなプログラムを作っているのですが
TreeViewからListViewにメッセージみたいなものを伝えるにはどうしたら良いですか?

具体的には、エクスプローラでは、右にあるTreeViewに表示されているフォルダを選択すると
左のListViewにフォルダの中身が表示されますよね?
この、お互いの連絡のやり取りが分からないのです。
TreeViewのフォルダが選択されたことをListViewに伝えるには、どうしたら良いですか?
0743デフォルトの名無しさんNGNG
現在選択されているフォルダの情報はdocに持つようにして、
変更されたら、UpdateAllViewsにヒントを与えてやればよいのでは?
0744デフォルトの名無しさんNGNG
さっそくDocを使う例だね。
0745デフォルトの名無しさんNGNG
スプリッタを使わずに、クライアント領域に複数のViewやコントロールを表示するには
どのようにすればいいですか。
0746デフォルトの名無しさんNGNG
MDI
0747デフォルトの名無しさんNGNG
OnNotify(....) で TVN_SELCHANGED
を捕まえて
そこでViewのポインタを得ればいい。
ソースまんまですが参考程度に。

//(2)Viewのポインタを取得する
CMyFilerDoc* pDoc = (CMyFilerDoc*)GetDocument();
POSITION pos = pDoc->GetFirstViewPosition();
if (pos != NULL)
{
CView* pLeftView = pDoc->GetNextView(pos);
CView* pRightView = pDoc->GetNextView(pos);
//デバックで先に検討つけておいてさらにRTTIでもチェックしてみる
CMyFilerView* pMyFilerView = dynamic_cast<CMyFilerView*>(pRightView);
if(pMyFilerView != NULL){
pMyFilerView->GetPath(str_comp);
}
}
0748名無しさん@MeadowNGNG
ステータスバーに任意の文字を表示させてます。
ペイン内の文字の右揃え、中央揃えをしたいのですが
どうしたらよいでしょう?

CStatusBar::SetPaneStyle にはそれっぽい
スタイルが無いのですが。
0749デフォルトの名無しさんNGNG
>>748
オーナードロー
0750デフォルトの名無しさんNGNG
>>748
表示する文字列の前に\tをつけると中央揃え。
\t\tをつけると右揃え。
0751デフォルトの名無しさんNGNG
0752SetClipboard?NGNG
あのークリップボードに直接書き込むことってできます?
たとえば "hoge\0" にしたいとき、Edit::Copy() とかを経由せずに。
0753デフォルトの名無しさんNGNG
つーかMSDNみろよ、、
0754デフォルトの名無しさんNGNG
すいません。長方形以外の形をしたダイアログはどのようにして作るのですか?
0755デフォルトの名無しさんNGNG
僕ぁ>>2を参考にしてくれないので悲すぃです。
0756質問者NGNG
質問ですー。
CWnd::ScrollWindow() でウィンドウの中身をスクロールさせるんですが、
他にTopMostなウィンドウがある場合、
TopMostなウィンドウの下に隠れてた部分がスクロール表示されないわけです。
これってどうすればいいんでしょ?
なにか定石がありますか?
0757保守あげだ〜よNGNG
(`Д´||)
あ、あれ??
0758名無しさん@MeadowNGNG
リストビューの並び替えをしようとしています。

static int CALLBACK
CompareFunc( LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort );

を定義してデバッグモードで監視しているんだけど
関数が呼ばれても常に1,2番目の引数が0なのはなんで?

ちなみにitemを挿入するときは
m_clist.InsertItem(m_clist.GetItemCount(), sBuf);
ってやってます。
0759758NGNG
すいません。
リストビューじゃなくてリストコントロール。
CListCtrl です。
0760シューNGNG
VC6でソース管理しない方法教えてください。
起動が遅くてむかつきます。
0761758NGNG
解決。
LV_ITEMにLPARAM lParam;ってのがあったわ。
これに値を入れておいてやればいいのね。
0762デフォルトの名無しさんNGNG
>>760
Visual SourceSafe をアンインストールしなさい。
0763デフォルトの名無しさんNGNG
>>762
みんなのどから手が出るほど欲しがってるソフトなのにね。
0764デフォルトの名無しさんNGNG
すみません質問です。ちょっとMFCの領域からはみ出ちゃうのですが...。

GUIを持ったアプリがあるのですが、起動時にあるオプションを付けた場合は、
普通のコンソールアプリとして動作するにはどうしたらいいでしょうか?

CWinAppのInitInstance()内で、AllocConsole()をやって、
CreateFile("CONOUT$", ... でハンドルを得て、
文字列を「新規の」コンソールに出力する事は出来たのです。

これを、コマンドプロンプト上から実行した場合に、新規にコンソールを作らず、
普通のコマンドラインアプリの様に、起動したコマンドプロンプト上に
文字列を出力したいのです。

すみませんが、お知恵を拝借出来れば幸いです。
0765デフォルトの名無しさんNGNG
前に似たような質問があったけど、
subsystem指定みてWindows側で処理するから、
そーゆー動作は出来ないのでは、という結論が
でてたと記憶している。
   プロンプトから実行 / 他から起動
Cnsl   継承         構築する
Win    デタッチ       〃  しない
0766まりまりNGNG
ダイアログベースのアプリ.
アプリ起動時にテキストファイル読み込み.

これってInitInstance()中にコード書く,でよいですか.
0767デフォルトの名無しさんNGNG
>>766
正しいかどうかはともかく、間違ってはいないんじゃない?
0768まりまりNGNG
あら,OnInitDialog()というのも有りますが
こっちの方がいいのかな...
0769初心者NGNG
困ってます。Debugモードでは問題なく動作しているプログラムですが、
Releaseモードで実行時にエラーが出てしまいます。
ダイアログに張り付けたリストコントロールのポインタを取得する
pList = (CListCtrl*)GetDlgItem(IDC_LIST);
という部分でAccessViolationが出ています。
コンパイルの最適化設定は、どちらもデフォルトになっています。
こんなとき、考えられる問題はどのようなことですか?

0770デフォルトの名無しさんNGNG
間違ってAPIすれで質問してしまったのでこちらで質問させてください…。
実行するユーザのローカルファイルを検索したいとき、実行ファイルのある
フォルダ内だったらCFileFindのFindfile関数を使うとできますが、
ドライブ全体にわたって検索したいときはどのようにすればよいのでしょうか?
なにかうまい関数があるのでしょうか?MSDNライブラリは検索などをして
いろいろ調べてみたのですがどうも適当な方法が見つかりません。
もし方法を知っている方がいらっしゃったら教えていただけないでしょうか?
0771デフォルトの名無しさんNGNG
findfileには c:\*.mpg とか渡せなかったっけ?
0772初心者NGNG
APIのSetCurrentDirectory()でC:\などと指定すれば
CFileFindで検索できます。サブフォルダを検索するときは
再帰関数を使って検索します。「再帰・CFileFind」とかで
検索したら出てきますよ。
0773デフォルトの名無しさんNGNG
>>769
デバッグん時は実行されるメモリが初期化されるけど、Releaseの時はされない。
初期化してない変数を参照したりしてない?

それと、Releaseでもデバッグ情報を有効にして、追ってみるって作戦もあるよ。
オプティマイズが効いてると、ソースと違う動きをしてるように見えるけどね。

まぁDebugで動いてReleaseで動かないなんて普通に有ることだから、
慣れるしかないね。あとは開発途中で、Releaseのテストをやるといいよ。

んじゃがんばって
0774770NGNG
>>772
こんなにも早く答えてくれてありがとうございます。
私は初心者中の初心者で、新入社員でVCをやらされて毎日が勉強の連続です。
みなさんの質問を読んでるだけでも勉強になります。
早く質問する側ではなく質問に答えられる側になりたいです。
ありがとうございました。
0775デフォルトの名無しさんNGNG
CFile f;
CFileException e;

if( !f.Open("duo.txt", CFile::modeRead, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}


ファイルの読み込みがわからない.いろんなサイトにいろいろ書いてあるが,
Read()の使いが...えーと,えーと,
ファイルのサイズが大きくても(数百K)うーんと,
いっぺんに読み込むんだと思うけど...
0776初心者NGNG
>>773
ありがとうございます。変数周りから絞り込んでみようと思います。

>>774
私も初心者です。あなたと同じように今年の春からVC++で
プログラミングを始めました。3ヶ月目で分からないことだらけ。
変数とか関数の意味が分からないところから始めましたよ・・・
お互いがんばりましょうね。

とりあえず、今日は帰れないな・・・うう・・・
0777デフォルトの名無しさんNGNG
>>775
ねぇ、ヘルプは見たの ?

-----------------
virtual UINT Read( void* lpBuf, UINT nCount );
throw( CFileException );

戻り値
バッファに転送されたバイト数を返します。すべての CFile クラスで、
ファイルの終わりに到達したときの戻り値は nCount よりも小さいこと
に注意してください。

引数
lpBuf
ファイルから読み出したデータを受け取るための、ユーザーが用意した
バッファへのポインタ。

nCount
ファイルから読み出す最大バイト数です。テキスト モード ファイルで
は、キャリッジ リターンとラインフィードの組は、1 文字と数えます。

解説
CFile オブジェクトに関連付けられたファイルからバッファにデータを
読み出します。
------------------------

いったい、何がわからんのか ?
0778初心者NGNG
CWnd* CWnd::GetDlgItem(int nID) const
{
ASSERT(::IsWindow(m_hWnd)); ←ここ

if (m_pCtrlCont == NULL)
return CWnd::FromHandle(::GetDlgItem(m_hWnd, nID));
else
return m_pCtrlCont->GetDlgItem(nID);
}
っていうアサートが出てます・・・でも意味が分かりません。
つまりどういうことなんでしょうか?教えてください!
0779デフォルトの名無しさんNGNG
つまり、このウインドウ(this window)が
有効ではないということです。
原因は、thisが有らぬ方向を指していたり、m_Wndが
破壊されていたり、単にCreateを忘れていたり、
すでにDestroyしていたり、多岐に渡ります
0780デフォルトの名無しさんNGNG
>>775の続きで

CString str;
f.Read(&str, f.GetLength());

を書いたら,デバッグしたらdebag assertion fail...

これ,なんか辺だからなんだろうがいったい...
0781初心者NGNG
>>779
ありがとうございます。詳しく調べてみると、1回目のアクセスは成功して
次のアクセスで問題が出ていることが分かりました。その間にthisポインタに
何が起こっているか、詳しく調べてみようと思います。
あぁ・・最終電車が・・・もうあきらめよう・・・
0782初心者NGNG
ダイアログボックスにあるボタンをクリックするとスレッドが作成され、
そのスレッドから投げられたメッセージを受け取って、
ダイアログボックスに張り付けられたのリストコントロールを更新する
というようなプログラムを作っています。
スレッドを作成する際に、ダイアログボックスへのthisポインタが
失われてしまうとかなんとか・・・そしたらコントロールはどうやって
扱えばよいのでしょう??
0783デフォルトの名無しさんNGNG
サブスレッドにhwnd(またはそれを含む構造体へのポインタ)を渡し、
サブスレッドからそのhwndへユーザ定義メッセージを投げて、
そのメッセージハンドラでコントロールを扱う。
0784初心者NGNG
>>783
そうか!!thisポインタじゃなくて、hwndを使うんですね!
やってみます!ありがとう!!
0785初心者NGNG
LRESULT SendMessage(
HWND hWnd, // 送信先ウィンドウのハンドル
UINT Msg, // メッセージ
WPARAM wParam, // メッセージの最初のパラメータ
LPARAM lParam // メッセージの 2 番目のパラメータ

SendMessage(hwnd,WM_USER_MESSAGE1,(WPARAM)pMyStruct,0);

ですよね・・・なぜだかCWndのSendMessageと思われて
引数がおかしいとか言われます。
かなーり初心者的な事を聞いているのは承知ですが・・・
わかんないです・・・。教えてください。
0786デフォルトの名無しさんNGNG
::SendMessage(〜);
0787デフォルトの名無しさんNGNG
すみません、お聞きしたいのですが。
ダイアログアプリで
起動処理中->待機状態
この流れ出
待機状態になったということを
検知できるMessage、または関数などありませんか?
なにがしたいのかといいますと、
起動したら一瞬ウィンドウが表示されて
直後に最小化->タスクトレイへ格納
という流れをしたいのですが困ってます。
低レベルな質問で申し訳ないですがよろしくお願いします。
0788デフォルトの名無しさんNGNG
最近暑いから汗でファンデ浮いちゃって大変。
0789デフォルトの名無しさんNGNG
質問です。

MFC標準の CPrintInfo を使って印刷しようとしているんですが、
デフォルトの印刷方向を横にしたいのです。
プリンタに依存しない方法ってありますか?

環境は VC++6.0 です。
0790デフォルトの名無しさんNGNG
>>789
CWinApp::GetPrinterDeviceDefaults()
0791デフォルトの名無しさんNGNG
>>787
WM_INITDIALOGで最小化(かSW_HIDE)すればいいと思うが、
明示的に一瞬表示されて欲しいのなら、
WM_INITDIALOGでSetTimerして適当な時間を(1秒とか)あけてから最小化したらどうか。

>>788
pFace->RedrawWindow();
0792デフォルトの名無しさんNGNG
クラスのインスタンスが存在したままの状態でthisポインタが
書き換えられるなんてことは、あり得るのでしょうか?
079387NGNG
みるならここだよ







http://www.abr200x.gr.jp
0794デフォルトの名無しさんNGNG
>>792
?
0795デフォルトの名無しさんNGNG
>>792
a::d()

は内部的には

a::d(a *this)

である。
思いっきりローカル変数なんだけど。
0796デフォルトの名無しさんNGNG
メンバ関数の削除について
VC++6 だと クラス ビュー からメンバ関数を削除できて便利だったのですが,
VC++7 では クラス ビュー から削除できませんでした.
VC++7 でどうやってメンバ関数を削除するのでしょうか.
お手数ですがご存じでしたら教えてください.
0797紫NGNG
MFCの勉強がてらHTTPSサーバに接続して、文字列(html文書等)
を取得するクライアントプログラムを作ってみたいのですが、
HTTPSプロトコルをラップしてくれるようなMFCのクラスはあるの
でしょうか?
Netを検索してもHTTPのソケットの作り方はあるのですが、HTTPS
になるとうまく情報が見つかりません。
WinAPIを叩ないといけないのでしょうか?
会社にある環境はVC++6.0なのですが。
教えていただけるとうれしいです。
0798デフォルトの名無しさんNGNG
>>796
確かにメソッドの削除が面倒だ
ねぇどうしよう俺も困ってる
0799デフォルトの名無しさんNGNG
>>976 >>978 マジ?
0800807NGNG
今 CFileDialog を使って以下のような処理を書いてます。

char filter[256] = "すべて (*.*)|*.*|";
CFileDialog dlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, filter, this);
POSITION pos;
CString s;

if (dlg.DoModal() == IDOK){
pos = dlg.GetStartPosition();
while (pos){
s = dlg.GetNextPathName(pos);
//処理
}
}

Win2k(SP2)でテストしてて、どんなに「開く」を選択しても
IDCANCELが帰って来ちゃいます(whileの処理にいけない)
どうしてなんでしょう?

ちなみに選択したフォルダとファイルの合計が15を越えると
IDCANCELが帰ってくるみたいです。
15以下だとIDOKがちゃんと帰ってきます。
0801800NGNG
ぐはぁ 名前が別スレのままだ・・鬱氏。
ついでに age。
0802800NGNG
自己レス。

char szFileNameBuffer[10240] = "";
dlg.m_ofn.nMaxFile = 10240;
dlg.m_ofn.lpstrFile = szFileNameBuffer;

加えたらうまくいきました。
0803デフォルトの名無しさんNGNG
>>802
それで解決にしたようだが、一応解説。
ファイルダイアログがデフォルトで持ってる
バッファの大きさが512(多分)。このバッファに
NULL文字区切りで複数のパスを格納する。終端はダブルNULL文字。
パス長の平均を30〜40文字とすると、15個前後でバッファを使い切ることになる。
ファイルダイアログはバッファを拡張してくれないので結果としてIDCANCEL(失敗)が返る。
なので、バッファを多めに取るのが解決のひとつ。ただし、10240でも選択ファイル数制限なしならば
いつかはオーバーしてしまう。
フックプロシージャを作ってファイル選択が増えるたびに
自前でバッファを拡張していくといくつでも格納できるようになる。
0804デフォルトの名無しさんNGNG
質問です。
キー入力を取得するには
PretranslatMessageを使用すると思うのですが、
たとえばEDITBOXに文字を1文字入力した場合
PretranslatMessageを使用すると
EDITBOX内に文字が描かれる前に処理がされてしまいます。
EDITBOX内に文字が表示されてからその内容をSetWindowTextで取得し
処理をしたいのですが・・・・・
0805804NGNG
すみません問題を勘違いしていました。

CEdit内に文字を入力した場合は普通に表示し、
空白を入力(spaceキー入力)
した場合はCEdit内に空白を表示させずにべつのCEditBoxの処理をしたいのです。
この場合、文字を表示する前に
EN_UPDATEメッセージがでるので
そこでフックして処理すればいいのだと思いますが、
ON_EN_UPDATE関数ないでキー入力(この場合はスペースが入力されたという情報)
はどのようにして取得すればいいのでしょうか?
0806デフォルトの名無しさんNGNG
>>804-805
PreTranslateMessageをオーバーライドして、
スペースの時の処理をしたら、TRUEを返せば
EDITにはキーメッセージが送られない。
0807804NGNG
>806
あ・・・
なるほど・・・
ありがとうございます
0808デフォルトの名無しさんNGNG
>>803
VisualC++パワフルテクニック(本)に「ファイルダイアログで選択で
きるファイル数を増やす」というのがあって、これだ!と思って見た
ら、何のことはない char szFileNameBuffer[10240] みたいなこと
やってて全然パワフルじゃなくて萎え萎えになったことがあるな。
0809デフォルトの名無しさんNGNG
>>808
同士よ。
0810デフォルトの名無しさんNGNG
>>808-809
やっぱ、みんなアレに過剰な期待するよな(w
でも、何十個もユーザにファイル選ばせるようなのは
設計上に問題がある気もしないでもない。
特殊なケース除いては、正しく何十何百ものファイルを
選べるユーザを想定したアプリは怖い。
0811デフォルトの名無しさんNGNG
質問です。
MFCを使って中が透明の円って描画できるでしょうか?
0812デフォルトの名無しさんNGNG
>>811
SelectObject調べまくり。
0813デフォルトの名無しさんNGNG
過去ログにはありませんでした。
SelectObjectでどのようにして指定すれば透明な円にできますでしょうか?
0814デフォルトの名無しさんNGNG
>>813
Arc。
0815デフォルトの名無しさんNGNG
ブラシを透明のブラシか何かにして円を書くんじゃなかったっけ?
0816デフォルトの名無しさんNGNG
>>815
それもあり。
0817七誌NGNG
メッセージを自分で送信する方法ってありますでしょうか?
たとえばマウスの右クリックをしたならばWM_SIZEが送られるようにしたいのですが・・・
0818デフォルトの名無しさんNGNG
>>817
sendmessage
0819デフォルトの名無しさんNGNG
PostMessage
0820デフォルトの名無しさんNGNG
>>811
SelectObjectでNullBrushで指定するんじゃないのかな?
0821800NGNG
>>803
それってどのタイミング?
CFileDialog::OnLBSelChangedNotify()
をオーバーライドすればいいのかなぁ?
0822sageNGNG
メインフォームのキャプション(アプリの左上にあるタイトル)を
プログラムで変更したいのですがうまくいかないです。

CDialog*b1 = (CDialog*)GetDlgItem(1001);
b1->SetWindowText("タイトル");

こんな感じにしてみましたが、アプリケーションエラーとかになりました。
0823デフォルトの名無しさんNGNG
>>822
AfxGetMainWnd()->SetWindowText("ほげ");
0824デフォルトの名無しさんNGNG
ドキュメントクラスにデータをClassの形でおきたいのですが、
Structなら簡単にヘッダファイルに記述できますが、
Classの形だとできません。

:public
Struct foo{
}
ならできますが

:public
class bar{
}
とやるにはどうすればいいでしょうか?
0825デフォルトの名無しさんNGNG
別ファイルで作ったクラス
MyClassをドキュメントクラスで宣言しようとします。

ドキュメントクラスのヘッダファイルで
:pubric
MyClass* NewClass;
と宣言して
Viewクラス内で
GetDocument()->NewClass->(メンバ関数);
とやるとメモリ関連のエラーが出てしまいます。

ドキュメントクラス内で宣言したクラスのメンバにアクセスする方法を教えてください。
0826デフォルトの名無しさんNGNG
http://js-web.cside.com/index.html
0827デフォルトの名無しさんNGNG
ogram Files\Microsoft Visual Studio\MyProjects\qq\qq.cpp(19) : error C2440: '=' : 'void *' から 'struct HBRUSH__ *' に変換することはできません。(新しい動作 ; ヘルプを参照)
'void*' から非 'void' 型への変換には明示的なキャストが必要です。
0828デフォルトの名無しさんNGNG
キャストしんさい
0829デフォルトの名無しさんNGNG
↑質問の下半分しかなかったのにありがとう。

ついでに
cpp(52) : fatal error C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
ってのがやたらでて,直しようがないんですがどうしたもんでしょう
0830デフォルトの名無しさんNGNG
>>829
stdafxをインクルード
0831デフォルトの名無しさんNGNG
C++理解したらVC++を自由に使いこなせると思っていたけど
ぜんぜんわかんね
0832デフォルトの名無しさんNGNG
>>831
正常
0833デフォルトの名無しさんNGNG
逆もまた然りだ。
0834デフォルトの名無しさんNGNG
>>833
逆は厨房
0835デフォルトの名無しさんNGNG
CStdioFileがUnicode環境で使い物にならなくて鬱...
あと何でもMSDNで throw( CFileException ); みたいに書いてあるけど,
例外投げないものも混じってない?

0836デフォルトの名無しさんNGNG
>>829
プリコンパイル済みヘッダを使用しない。
0837825NGNG
ドキュメントクラスでクラス宣言して、そこにデータ格納するのはできないのでしょうか?
コンストラクタで宣言しても使えませんでした。
0838デフォルトの名無しさんNGNG
>>837
やりたいことはサパーリわからんが、文面通り解釈するとこうか?

class MyDoc : public CDocument
{
public:
 MyDoc()
 {
  // コンストラクタでクラスを宣言してみました
  class DataClass;

  DataClass* pData = new DataClass(); // error: 定義してないのでインスタンスは作れませんでした

  pData->???? = 10 ; // error: どんなメンバがあるのかもサパーリなのでデータは格納できませんでした

  m_pData = pData; // なんの役に立つのかは知らないけど一応メンバ変数に保存して置こう
 }
 void* m_pData;
};
0839825NGNG
レスありがとうございます。
説明が不十分なようで・・・

#include "Newclass.h"

class MyDoc : public CDocument
{
public:
 Newclass* myClass = new Newclass[10];
 
};

って感じで定義して、ViewClassで



void CClusteringView::OnButtonRun()
[
GetDocument()->NewClass->(メンバ関数);
]

という感じで使いたいのですが、文法、もしくは定義の仕方が違うのでしょうか?
0840825NGNG
すみません
ViewClass内では
void CClusteringView::OnButtonRun()
[
GetDocument()->myClass->(メンバ関数);
]

とやってます。
0841デフォルトの名無しさんNGNG
>>839
クラス定義の中で、
>Newclass* myClass = new Newclass[10];
なんてできない。
Newclass* myClass;
と、Newclassのポインタをドキュメントクラスのメンバに加えておいて
コンストラクタなりでnewすれ。
0842825NGNG
なるほど、レスありがとうございました。

あとはコンストラクタで、
NewClass* myClass = new NewClass[10];

と宣言して

ViewClassで
GetDocument->myClass[0]->x = 0.0;

みたいにメンバにアクセスできますね。

本当にありがとうございました。
0843825NGNG
たびたびすみません。
コンストラクタで

NewClass* myClass = new NewClass[10];

このように宣言するのは間違ってますか?
0844デフォルトの名無しさんNGNG
>>843
コンストラクタ内でそれやったら新しいローカル変数が出来ちゃうでしょ

myClass = new NewClass[10];

だけで十分。
どっかで

delete[] myClass;

するの忘れないように

”クラス”と”オブジェクト”または”インスタンス”の言葉の使い分けをどこかで調べとくと吉
あと”宣言”も
0845825NGNG
>>844のようにやったところ
Doc.obj : error LNK2001: 外部シンボル ""public: __thiscall NewClasst::NewClass(void)" (??0NewClass@@QAE@XZ)" は未解決です
Doc.obj : error LNK2001: 外部シンボル ""public: virtual __thiscall NewClass::~NewClass(void)" (??1NewClass@@UAE@XZ)" は未解決です

とのエラーが(TT
0846デフォルトの名無しさんNGNG
>>845
そのエラーはクラスのメンバの実装が書かれてないときに出ると思うけど
ちゃんと書いてるの?
VC++ではなく普通のC++の文法からやったほうがいいと思えてならない
0847825NGNG
>>846
解決できました。
プロジェクトに入ってなかったようです。
本当にありがとうございました。
0848デフォルトの名無しさんNGNG
C***View::OnDraw(CDC* pDC)関数に
MessageBox("hello",NULL,MB_OK);
と入力したのですがウィンドウの大きさを変化させたりしても
反応がありません。どうしてですか?
0849デフォルトの名無しさんNGNG
何Viewの派生クラスに具体的にどう書いたのか
0850デフォルトの名無しさんNGNG
CEditViewから派生させました。
内容は、
void CTestView::OnDraw(CDC* pDC)
{
 CTestDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 MessageBox("hrelo",NULL,MB_OK);
}

です。
コンストラクタとかにMessageBoxをかくと
ちゃんとダイアログが出るんですけど、、、
0851デフォルトの名無しさんNGNG
CEditViewはOnDraw呼ばないよ
0852デフォルトの名無しさんNGNG
はっ、そうだったのですか。
こりゃどうも失礼しました。
ありがとうございますう。
0853デフォルトの名無しさんNGNG
ベターな質問ですみませんが、
線等を再描画して、他のアプリケーションに隠れたときに
消えてしまう現象を直すのにはどうしたらよいのでしょう?
0854デフォルトの名無しさんNGNG
>>853
書き直す。
Windowsのお勉強。
0855デフォルトの名無しさんNGNG
EXCELの質問ですみませんが、EXCELにはないイベントを拾いたいのですが・・
AddressOfで関数のアドレスを拾って、うんぬんまで分かりますが・・。
実際に搭載可能なのでしょうか?
0856デフォルトの名無しさんNGNG
( CButton * )GetDlgItem( IDB_BUTTON1 )->SetWindowText( "test" );
って書くと、void型からCButton *型には変更できないって言われるんですが、
何かおかしいところがありますか?
CWndのGetDlgItemをリソースのIDだけで呼び出したときって、
戻り値はCWnd *型ですよね?
0857デフォルトの名無しさんNGNG
>>856
( CButton * )(GetDlgItem( IDB_BUTTON1 ))->SetWindowText( "test" );
0858デフォルトの名無しさんNGNG
>>857
ありがとうございます。
ブランクがしばらくあったので、前はできたのに…とか思ってました(^^;)
0859デフォルトの名無しさんNGNG
SetWindowTextならCWndのままでもいいのでは
0860デフォルトの名無しさんNGNG
GetDlgItem(IDB_BUTTON1)->SetWindowText("test");
ということで。
0861デフォルトの名無しさんNGNG
>>859-860
確かに、SetWindowTextならキャストする必要ないですね(^^;)
鍛えなおします。
0862デフォルトの名無しさんNGNG
.NETでスタティックリンクした
ダイアログアプリなんですが
動作するOS、
必要なランタイムがわかりません。
IE4以上推奨、とかそういう関係です。
解説ページとかあったら教えてもらいたいのですが。
OSはじかにテストしてみるしかないのでしょうか?

0863デフォルトの名無しさんNGNG
>>862
Win98以降じゃないかな?
0864デフォルトの名無しさんNGNG
>>862
ヘルプ読めよ。そのAPIが使えるOS載ってる。
0865NNGNG
>>853
。。。。。。。ちょっとは本を読んで勉強しましょう。

MFCのCView系ならばOnDraw。
純粋なWidnowsSDKで組んでいるならば、WM_PAINTで描画しる!!
0866811NGNG
すみませんがもう一度質問します。
MFCを使って中が透明の円って描画できるでしょうか?

簡単なプログラム例も載せていただくと助かります。
0867デフォルトの名無しさんNGNG
>>866
selectobject使え。



デジャブ。w

NULL_BRUSHに早く気づけ。
0868デフォルトの名無しさんNGNG
>>866
GetStockObjectでNULL_BRUSH、それをSelectObject
0869デフォルトの名無しさんNGNG
Arcでも円が書けるのになぁ(しょぼん
0870_NGNG
<FORM></FROM>で囲ったフォームオブジェクトと同じ事を、ActiveXコントロールで
行いたいのですが、可能でしょうか?
つまり、<FORM>でGET/POSTされる時に、ActiveXコントロールからも、自動的に
データが読み出されて、サーバへリクエストが送信されると行った動きです。

宜しくお願いします。
0871デフォルトの名無しさんNGNG
ActiveXでDHTMLに介入すればええんでないかい?
0872デフォルトの名無しさんNGNG
>>870
スクリプト側で解決すべき問題かと思われ
0873デフォルトの名無しさんNGNG
Class1(自作クラス)とProjectDoc(ドキュメントクラス)の2つのクラス間を
ポインタを使ってデータを相互参照しようと思います。

Class1のメンバに

#include "ProjectDoc.h"
public:
  void GetDoc(const CProjectDoc& src);

と指定すると

ドキュメントのほうで、
#include "Class1.h"

:private
  Class1* myclass;

とすると
: error C2143: 構文エラー : ';' が '*' の前に必要です。
: error C2501: 'Class1' : 識別名を宣言するのに、型が指定されていません。
: error C2501: 'myclass' : 識別名を宣言するのに、型が指定されていません。

というふうに、
ドキュメントクラスの #include"Class1.h"が無効になってしまうエラーが出てしまいます。
どこかおかしいのでしょうか?
0874デフォルトの名無しさんNGNG
VC初心者です。CAsyncSocketを使って非同期ソケットを
つくってみたいのですが、OnAcceptでSendをすると
-1が帰ってきてしまいます。
OnAccept自体はエラーになっていません。
なぜでしょう?
0875デフォルトの名無しさんNGNG
>>874
GetLastError()は?
0876デフォルトの名無しさんNGNG
>>875
ヘルプにある戻り値ではありませんでした。
あと、OnCloseとかもまったく呼ばれません。
OnAcceptだけが呼ばれる感じです。
ちなみにコードはこんな感じです。

グローバル
CSockTest s;
CSockTest aptsock;
CSockTest& clsock = aptsock;


ダイアログ

// TODO: 特別な初期化を行う時はこの場所に追加してください。
AfxSocketInit();
if (s.Create(5007) == 0){
MessageBox("Socket Err");
}
if (s.Listen() == 0){
MessageBox("Listen Err");
}
s.Accept(clsock);

派生クラス
void CSockTest::OnAccept(int nErrorCode)
{
if (Send("TEST",4,0) == SOCKET_ERROR){
MessageBox(NULL,"ERR","",MB_OK);
}
CAsyncSocket::OnAccept(nErrorCode);
}
0877デフォルトの名無しさんNGNG
Sendの前にAcceptしてみそ。
0878デフォルトの名無しさんNGNG
>>877
Listenの後のAcceptではだめでしょうか?
0879デフォルトの名無しさんNGNG
>>877
できましたー
ありがとうございます。
OnAcceptだからAcceptを呼ぶ
うーん。なるほど。
0880デフォルトの名無しさんNGNG
ダイアログアプリでWindowsのシャットダウンを
検知して、終了作業を行いたいんですが
どうやって検出すればいいですか?
上手く検索できなかったので
検索ワードでも結構ですので、
よろしくお願いします。
0881デフォルトの名無しさんNGNG
>>880
必ず終了処理ができなければいけないアプリではまずいのでは?
0882880NGNG
>881
えっそうなんですか?
じゃ例えばレジストリや.iniファイルへの書き出し
っていうのはその都度行うのが正しいんでしょうか?
終了時にすべて一括して書き出してるのですが。。
0883デフォルトの名無しさんNGNG
>>882
そういうのは随時更新すべし
0884デフォルトの名無しさんNGNG
終了時に設定をまとめて書き出す
アプリが�dだときってとっても悲しいね
0885880NGNG
知らなかった。。
だってどこにも書いてなかった。
結構当たり前の基本だったのね。。
もうそこ」以外全て完成してただけに
がっかり。。
書き直してきます。
ありがとうございました。
深く感謝。
0886デフォルトの名無しさんNGNG
>>880
ちなみに、Winがシャットダウンするときは WM_QUERYENDSESSION(だったかな?)
が飛んでくるので、それをハンドリングしてやればよろし。
0887デフォルトの名無しさんNGNG
俺は一括して読み書きしてるがなぁ・・・
0888880NGNG
>>886
ありがとうございます。
無事解決しました。

ですが、根本的にそのたびに書き出した方が
いいということがわかりよかったです。
すると新たな疑問が湧いてきたのですが
そのたびにiniファイルに書き出すのだとしたら
逆に必要になればその度読み出すべきなのでしょうか?
今までは起動時にiniファイルから読み出し変数へ格納、
終了時に変数とiniファイルに書き出し、
この流れだったんですがその度に書き出すとすると
メモリを使ってまで変数を使用する必要があるのですか?
0889デフォルトの名無しさんNGNG
>>888
そう、どっちかに決めることないじゃん。
ケースバイケースだよ。
0890デフォルトの名無しさんNGNG
ちなみにオレは
読み込みは起動時に一気に変数へ格納
書き換え時は変数とini両方書き換え
0891880NGNG
今の私の状況的にも
>890
のようにするのが一番手っ取り早いんですが
そうなるとメンバ変数のメモリ使う意義がわからなくなって。。
次に読み出すときメンバ変数からじゃなくて
iniファイルに最新のデータがはいってるわけで
iniファイルから読み出せばいいんじゃないかと。
でも理由はないんですがなんとなく不安で。。
ご意見ありがとうです。
0892890NGNG
書き換えることは少ないからねー
0893デフォルトの名無しさん NGNG
COleCurrencyって、使ったことある方、います?
属性にお金を持たせるクラスがあったんで何も考えずにこれを使ったんですが、
どうしてもdouble型との掛け算をしたいって話になって・・・

しょうがないので今は強引にdouble型をlong型に変換して計算してるんですが、
これってもっといい方法とかあるんでしょうか。
それとも、そもそもCOleCurrencyを使う時点で間違ってるんでしょうか。
0894デフォルトの名無しさんNGNG
イメージリスト(CImageList)からインデックス別にビットマップを
作成するにはどうすれば良いのでしょうか?
ExtractIconではアイコンしか取得できないし、GetImageInfo
で取得できるIMAGEINFO構造体のhbmImageを取得しても、
これは指定したインデックスのビットマップではないようなのです。
0895デフォルトの名無しさんNGNG
ダイアログベースで、ダイアログにピクチャーでビットマップを貼り付けて
その上に図形を描画しようと思っているんですけど、

OnPaint上で描画すると図形が先に描画されてしまって
そのあとビットマップが描画されるためビットマップが上になってしまいます。

どうすればいいですかね??
0896デフォルトの名無しさんNGNG
ダイアログ上で、マウス・キーボードが入力されたときの判定を行いたいのですが
BOOL CDlg::PreTranslateMessage(MSG* pMsg)
{
     if(
( pMsg->message == WM_KEYDOWN )||
( pMsg->message == WM_MOUSEMOVE )||
( pMsg->message == WM_LBUTTONDOWN )||
( pMsg->message == WM_RBUTTONDOWN )
)

こう書いたところ、WM_MOUSEMOVEが常に通ってしまいます。
正しいマウスの動作チェックのしかたを教えてください。

この質問は、ここに書いてもよいのでしょうか?
C言語スレに書いてスイマセンでした。
0897デフォルトの名無しさんNGNG
>>896
おかんが廊下歩くときの振動でマウスが動いてる。揺らすなとお願いすれ。
0898デフォルトの名無しさんNGNG
>>895
ビットマップ描いた後に図形描けば良いじゃん?
0899デフォルトの名無しさんNGNG
メモリDCを使おう。
0900デフォルトの名無しさんNGNG
>>896
XP?
0901デフォルトの名無しさんNGNG
ダイアログの中にプロパティシートを置いて使っているんですが、
プロパティシート上のページと、ダイアログ本体のフォントは同じ
MSゴシック9ポイントを指定しているのに(ダイアログリソースの
プロパティでフォントサイズを指定しています。)、明らかに
違って見えるんです。
(プロパティページ上のフォントはMSPゴシックのような気がします。)

また、ためしに同じサイズのボタンを置いてみましたが、
明らかにボタンの大きさが違ってみえます。

原因ご存知の方いましたらぜひ教えてください。おながいします。
0902デフォルトの名無しさんNGNG
>>72
スマン、C#素晴らしいと思うのだが、どっかのスレで
C#よりVBで生成するコードの方がアセンブリ情報が
どうとかで高速らしい。

0903デフォルトの名無しさんNGNG
C++万歳
0904デフォルトの名無しさんNGNG
IEのメニューバーの右端で回ってるWindowsマークだけど、
あれって、どうやって実現するのですか?
方法をご存知の方、ご教授願います。
0905デフォルトの名無しさんNGNG
CAnimateCtrlを使ってるんだよ。AVIファイルが必要だから自分で作る。
MFCIEていうサンプルプログラムがあるから参照してくれ。
0906デフォルトの名無しさんNGNG
>>904
一定時間ごとに別なビットマップを描画していけばアニメーションする。
0907デフォルトの名無しさんNGNG
>>905
Thx!
キーワードが分からなかったので、ぐぐれなくて困ってました。
今、ダウソ中です
0908デフォルトの名無しさんNGNG
ダイアログアプリで
SCMPXのようにWindowをドラッグして移動してる時に
画面端近くならぴたっと画面端に吸い付くようにしたいのですが
できません。
考えて↓のように書いたのですが。。

//Window移動中
void CTestDlg::OnMoving(UINT fwSide, LPRECT pRect)
{
CDialog::OnMoving(fwSide, pRect);//Default

CRect rcDT;
GetDesktopWindow()->GetWindowRect(&rcDT);
if(pRect->top<=rcDT.top+30)
{
CRect rc(pRect);
rc.top=rcDT.top;
rc.bottom=rc.Height();
MoveMainWindow(&rc);
}
}
これだとなぜか画面上部に近づくと
ドラッグ中のカーソル位置<->画面端に引っ付いた位置
をすごい速さで行ったり来たりして思うように動いてくれてません。
説明難しいですが。。
どこが間違っているのでしょうか?
0909デフォルトの名無しさんNGNG
聞きたいことと少し違ったので、再度質問させてください。
MFCIEではツールバー上にアニメーションコントロールが置かれていますが、
これをIEのようにメニューバー上に実装したいのですが、
どうしたら良いか分かりません。
0910909NGNG
904=909です
0911デフォルトの名無しさんNGNG
>908
//Window移動中
void CTestDlg::OnMoving(UINT fwSide, LPRECT pRect)
{
  CDialog::OnMoving(fwSide, pRect);//Default
  ↑
  これって何やってんの?
  
  CRect rcDT;
  GetDesktopWindow()->GetWindowRect(&rcDT);
  ↑
  これって、デスクトップのサイズを取得してる?
  
  if(pRect->top<=rcDT.top+30)
  {
  ↑
  で、上に30ドット以内になったら、ここにきて
  
    CRect rc(pRect);
    ↑
    これって、rcの初期値として、pRectを入れてるの?
    
    rc.top=rcDT.top;
    rc.bottom=rc.Height();
    ↑
    bottomってサイズが入るんじゃないの?
    pRectに既にサイズが入ってないの?
    
    MoveMainWindow(&rc);
    ↑
    これで、更新した値を反映してる。
 }
}
0912908NGNG
こんばんわ、908です。
ご指摘の部分はVCが自動作成したものです。
ちなみにコメントアウトしても問題なかったです。
もともとは
CDialog::OnMoving(fwSide, pRect);
//TODO:ここに独自の処理と追加…
みたいな感じのやつです。
よろしくお願いします。
0913908NGNG
>911
すみません、スクロールバーが一番↓だと思ってて
一番上しか読めてなかったです。
ゆっくり考えてきます。
ありがとうございました。
0914908NGNG
>>911
考えてきました。連カキコすみません。
GetDesktopWindow()->GetWindowRect(&rcDT);
↑デスクトップのサイズを取得してます。
CRect rc(pRect);
↑わざわざ使う必要は無いのですがちょっと
頭の整理と、見やすくなるので。
rc.bottom=rc.Height();
pRectに既にサイズが入ってるのですが
rc.topをずらしたら同じだけrc.bottomをずらさねば、と。
rc.bottom -= rc.top と同じです。
MoveMainWindow(&rc)
すみません、説明抜けてました。
中身はメインウィンドウのMoveWindowと
コントロールの子ウィンドウを同時に動かすためのものです。

もうかなり迷ってるのですが、
根本的に間違ってるんではないかとも考えてしまいます。
ご存知の方、よろしくお願いします。
0915BluckNGNG
VC++のofstreamって、UNICODEに対応していますか?
テキストファイルに書き出すと、ただの数字の羅列が出力されてしまいます。
0916NEWNGNG
TIFF形式での画像ファイル作成方法を教えてください。
よろしくお願いします。
0917デフォルトの名無しさんNGNG
>>916
MFCで?
0918デフォルトの名無しさんNGNG
>>916
そんなクラスはMFCになかったと思うよ
0919デフォルトの名無しさんNGNG
MFCよく知らんが
>    MoveMainWindow(&rc);
こんな命令あったっけ。

914は、中学生?
その機能を何に使いたいの?
0920908=914NGNG
>こんな命令あったっけ
>914
メインウィンドウのMoveWindow +
コントロールの子ウィンドウを同時に動かすためのものです。
作りました。
>その機能を何に使いたいの?
その機能=MoveMainWindow()なら
↑
質問の意図は↓
>908
SCMPXのようにWindowをドラッグして移動してる時に
画面端近くならぴたっと画面端に吸い付くようにしたいのですが
です。よろしくお願いします。
0921デフォルトの名無しさんNGNG
>920
質問するにあたって、アレではダメだろ。
ブラックボックスがあるし。
まずは、親ウィンドウだけを希望通りに動くようにすべきだろ?
0922BluckNGNG
>>915
よく見たらすれ違いでした。すみません。
0923908NGNG
>921
それもそうですね、すみません、
MoveMainWindow =>MoveWindow()
と考えてもらって結構なんで
よろしくお願いします。
0924デフォルトの名無しさんNGNG
MFC知ってる奴来ないみたいだけど、暇だから考えてみる。
RECT系の構造体って、
topとleftに左上の座標が入り、
bottomとrightにサイズが入る場合と、
bottomとrightに右下の座標が入る場合がある。
あのソースのRECT系変数は、それぞれどのタイプ?って、分かってる?
0925デフォルトの名無しさんNGNG
SetWindowPosのこと?
0926デフォルトの名無しさんNGNG
>>908
MoveWindowするんじゃなくて、pRectの中身を書き換えてやれば
いいんじゃないのか? ヘルプ慾余命幾許。
0927暇人NGNG
これでドーダ!
//Window移動中
void CTestDlg::OnMoving(UINT fwSide, LPRECT pRect)
{
  CRect rcDT;
  GetDesktopWindow()->GetWindowRect(&rcDT);
  
  if(pRect->top<=30)
  {
    pRect->bottom-=pRect.top;
    pRect->top=0;
    pRect->right-=pRect.left;
    MoveMainWindow(pRect); //または、CDialog::OnMoving(fwSide, pRect);
  }else
  {  CDialog::OnMoving(fwSide, pRect);//Default
  }
}
0928暇人NGNG
あ、
pRect.top;
とかは、
pRect->top;
の間違いね
0929908NGNG
>927
ありがとうございます。
pRectの方を調整したらよかったんですね。
全く気付きませんでした。
上手く動作しました。
ただしへばりついたまま離れようとしてくれませんがw
これは自分でがんばってみたいと思います。
ありがとうございました。
0930暇人NGNG
結局、908は、
>あのソースのRECT系変数は、それぞれどのタイプ?って、分かってる?
分かってなかっただけ。

へばりついたまま動かないのは、当然やな。
Windowをドラッグしてるときの、あの枠組の座標って取得できるのかな。
できなけれは、Windowを最初にクリックしたときのマウスポインタの座標を記録して、
ドラッグでマウスポインタが動いてるときのY座標の差が、30を超えたら、
Windowの座標を、30超えた値にする方法がある。
それか、Windowの移動を自前で設定するときは、Windowの移動を完了したときだけにして、
そのイベントを取得して、そのときの座標がピッタリでなければ、自前で設定する。
暇だといろいろ考えてしまう。
0931デフォルトの名無しさんNGNG
すごく初歩的なことだと思うんですが
Cで言う構造体宣言やグローバル変数ってどこで作ったらいいんでしょう。。。
C++初心でぜんぜんわかりません...
0932↑NGNG
スレ違い
0933デフォルトの名無しさんNGNG
略

CString CXXX::XXX()
{
略
}

int iGlobal; //←がグローバル変数

void CXXX::INCXXX()
{
   iGlobal++;
}

int CXXX::GetXXX()
{
  return iGlobal;
}
0934931NGNG
ごめんなさいMFCでのグローバル変数の作り方が
わかりませんということです。
933のやり方で、ほかのcppファイルでも変数扱えるんでしょうか。
0935デフォルトの名無しさんNGNG
>>934
externすればな
ていうかMFCでグローバル使うな
0936がすけNGNG
お世話になります、がすけと申します。

早速ですが質問させてください。
「rasphone.pbk」の内容を直接編集しても「rasphone.pbk」は、
変更できますが、システム?は即反映されません。

具体的には
1.「rasphone.pbk」に対して「WritePrivateProfileString」を
使用し「接続時にタスクバーにアイコンを表示する」を有効にする
↓
2.「rasphone.pbk」の編集成功
↓
3.編集したダイヤルアップでダイヤルアップを行う
↓
4.タスクバーにアイコンが表示されない!!←ここが問題

以下のことを行うとタスクバーにアイコンが表示されます
a.Windowsの再起動を行う
b.エクスプローラでダイヤルアップを開き「最新情報に更新」を行う

「rasphone.pbk」を直接編集後にその内容をシステムに通知?する方法を
教えて下さいお願いします・・・・・

開発環境
Windows2000
VC++6.0
0937370NGNG
標準のキーボード入力(PS2 I/F)を無効にするような
ことはできますか?
0938デフォルトの名無しさんNGNG
ひっこ抜く。
0939デフォルトの名無しさんNGNG
>>937
単発スレたてんな
0940デフォルトの名無しさんNGNG
あの370じゃないんですが、似たような質問いいですか?
OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
を利用して、仮想コードがVK_MENU(Altキー)の場合、
Alt+Tabなどを使用させないように無効にしたいのですが、
やり方ありますか?教えてください。
0941デフォルトの名無しさんNGNG
nChar = 0 では、いけませんでした。
0942デフォルトの名無しさんNGNG
VC++勉強をはじめたばかりなのですが
MFC使うのと使わないのではどの程度生産性が違いますか?
それとMFCを使わない方法を知っていると何か良いことはありますか?
0943940NGNG
検索で調べたところ、
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, &i, 0);
でシステムキーを無効にできるとあったのですが、ヘルプをみてみると
SPI_SCREENSAVERRUNNINGは、Win95のみとのことでした。
現在使用しているPCは、2000なのですが、対応策ありませんか?おねがいします。
0944デフォルトの名無しさんNGNG
>940
DirectInputの関連で、その話題がたまに出てくる。
いそのこと使ってみたら?
0945デフォルトの名無しさん NGNG
GetLastError 関数が返したシステムエラーコードに対応するエラーメッセージを取
得しようとして
以下のようなプログラムを埋め込むと、

LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGN
ORE_INSERTS,
NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL,
SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL );

MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK |
MB_ICONINFORMATION );
LocalFree( lpMsgBuf );

error C2660: 'MessageBoxA' : 関数が不正な 4 個の実引数をともなって呼び出され
ました。
cl.exe の実行エラー

とでてきます。これはなぜ起こるのでしょうか?以前はちゃんとエラーが帰ってきた
のですが、
最近はこのエラーがでて使えません。よろしくお願いします。

0946デフォルトの名無しさんNGNG
>>945
CWnd::MessageBoxを呼んでるから。
0947デフォルトの名無しさんNGNG
>>945
CWnd::MessageBoxを呼んでるから。
APIを呼びたかったら、::Mess〜とすれ。
0948デフォルトの名無しさんNGNG
ボタンにBitmapを貼り付けたくて
CBitmapButtonを使って実装しました。
ヘルプにもある通り、OnInitDialogの中で
AutoLoad()を呼び出したのですが、
納得できないのが
CDialog::OnInitDialog();
より後ろに書くとASSERTのエラーが出てしまいます。
前に書くとエラーが出ないのですが、
ヘルプには前に書けという指示も無かったので、
CDialog::OnInitDialog();
より後ろにAutoLoad関数を書いてはいけない理由がわかりません。
どうしてでしょうか?
0949デフォルトの名無しさんNGNG
ソースみれ
0950940NGNG
>>944
DirectInputクラスをヘルプと、Googleで少し検索してみたのですが、
ゲームパッド・ジョイスティックで使用するクラスですか?
MSDNには、これも2000・xpには適用されないとのコトでした。

SPI_SCREENSAVERRUNNINGを使ってみたのですが、エラーにはならない
のですが、無効のようですね。
0951デフォルトの名無しさんNGNG
>MSDNには、これも2000・xpには適用されないとのコトでした。
DirectInputが? 2000/XPで使えないと?
MSDNのどこにそんなことが?
0952940NGNG
>>951
勘違いしてました。すいません。この組み合わせだけでした。
Windows XP または
Windows 2000 と DirectX 8.1 SDK

この記事は、DirectInput API を使用している DirectX 開発者を対象としていますが、
Microsoft Windows 2000 と DirectX 8.0 および DirectX 8.0a SDK を
使用している開発者のみに適用されます。この記事は、Windows XP または
Windows 2000 と DirectX 8.1 SDK を使用している開発者には適用されません。
0953940NGNG
さらにこの記事は
「DirectInput デバッグ時の遅延を防ぐ方法」
でした。
あせりすぎでした。すいません。
0954デフォルトの名無しさんNGNG
すいません、スレ違いかもしれませんが、
一応 MFC に関することなので質問させてください。
MFC ActiveX ControlWizard で作った ActiveX に
JavaScript から文字列を渡す方法ってあるんでしょうか。

例えば URL を入力してそれを JavaScript から ActiveX に渡す、
すると ActiveX はその URL を使って色々なんかやる、みたいな。
(↑くれぐれもこれは例え話なんで「全部 ActiveX でやれば」とか
 「全部 JavaScript でやれば」なんてお願いですから言わないで下さい)

誰か知ってるなら、助けてください。どうかお願いします。
0955945NGNG
>>946,947
どうもありがとうございます。
修行不足です。精進します。
0956デフォルトの名無しさんNGNG
MFCでプログラムしててCWindowなんてのを見つけて
こりゃ便利だと使ってコンパイルしたら失敗〜。。ありゃりゃ〜?!
あっそうか、ヘッダが要るのか〜と
#include <atlbase.h>
#include <atlwin.h>
を追加してふと気がついたがこれはATLじゃん・・
直すのもめんどくさいし。なんとかこのまま突き進む方法はありませんか?
0957Rina ◆tI333vNE NGNG
おとなしく直すほうが吉かと。
0958デフォルトの名無しさんNGNG
>957
どうもです。

しかしHWNDとかHBITMAPとかWin32系ハンドルとMFCのクラスの関係っていまいちわかりずらいよなぁ。
CWnd *p = CWnd::FromHandle(hWnd);
p->ShowWindow();
とかでOK?
CWnd wnd;
wnd.Attach(hWnd);
だとなぜ死ぬんだろう・・
0959デフォルトの名無しさんNGNG
>>958
下の例だと、wndの寿命が終わったときにウインドウが破棄されない?
0960デフォルトの名無しさんNGNG
初めてDLLを作成するんですが、
GetFileNameという自作の関数を
エクスポートしたいのですが、リンクエラーが発生
してしまいます。
エラーは大量に出るのですが、どうやら
CString classのGetFileNameとぶつかってる(?)
ようです。
自作の「GetFileName」という名前の関数をDLLから
使おうという発想自体が間違いなのでしょうか?
よろしくお願いします。
0961デフォルトの名無しさんNGNG
>959
死ぬというかデバッグ時のassertで引っかかるみたいですね。
まぁ上の方法でなんとか動いてます
0962デフォルトの名無しさんNGNG
CByteArrayなどのテーブルを
を"<<"や">>"でシリアライズすることはできますか?
0963デフォルトの名無しさんNGNG
>>962
Yes. つーかここで訊かずにMSDNに訊いた方が500倍くらい
速く答えが返ってくると思うぞ。
0964960NGNG
>960です。
なにか聞き方がまずかったかな。
要約すると、DLLを使う側のプログラムで
GetFileName関数を呼び出したいのです。
他の関数はエクスポートできてるみたいなんですが
CStringTクラスとぶつかる(?)らしく、
GetFileNameのみエラーがでます。
これをなくすにはGetFileNameという
名前を他のものにするしかないのでしょうか?
0965デフォルトの名無しさんNGNG
>>964
名前を変えたらエラーは一つも出ないの?
0966960NGNG
えっと、デバッグモードでは出ませんが、
リリースモードにすると
LINK : warning LNK4089: 'OLEAUT32.dll' への
すべての参照は /OPT:REF によって廃棄されます。
上がひとつでます。
関係ないと思って放置してますが。
ヘルプ読んでも理解できなかったので。
これが関係あるのでしょうか?
0967960NGNG
↑ageてしまいました、すみません。
0968960NGNG
報告です。
結局GetFileName関数の名前を変更してエラーを回避して、
無事動作を確認しました。
根本的な解決ではありませんが。。
LINK : warning LNK4089: 'OLEAUT32.dll' への
すべての参照は /OPT:REF によって廃棄されます。
リリースビルドでこのエラーがどうしても消えません。
ヘルプには
リンカは dynamic-link library のエクスポートを参照する
パッケージ化された関数をすべて破棄しました。
とありますが、未熟者なので理解できませんでした。
これはつまりどういうことなのでしょうか?
0969 NGNG
>>968
warningはエラーじゃない。
0970960NGNG
>969
すみません、言葉の選択を間違えました。
エラー-->警告
でお願いします。
警告なので無視しても大丈夫と思いますが
分かっていて無視するのはいいですが、
わからないまま無視するのもどうかと思いまして、
悩んでいます。
0971デフォルトの名無しさんNGNG
>>970
> LINK : warning LNK4089: 'OLEAUT32.dll' への
> すべての参照は /OPT:REF によって廃棄されます。

訳:リンクの設定の所ではOLEAUT32.dllをリンクするように
書いてるようだが、おみゃーのプログラムは一回もOLEAUT32.dllを
使ってないのでそこんとこ無駄だから無視するぞゴルァ!!

つーわけで別に問題ないかと。
0972960NGNG
>971
なるほど、わかりやすい解説ありがとうございました。
将来使うかもしれないので、警告は消さずに、
置いておこうと思います。
ありがとうございました。
0973デフォルトの名無しさんNGNG
MDIGetActive以外でMDIのアクティブなウィンドウのハンドルを
取ることは出来ないのでしょうか?

GetForegroundWondowだとフレームのハンドルのほうを取ってしまう
ようで・・・。
0974973NGNG
自レスですスマソ。

::SendMessage(m_hWndMDIClient , WM_MDIGETACTIVE , 0 , 0);

としたらOKでした。
お騒がせしましたm(__)m
0975デフォルトの名無しさんNGNG
新スレです。
■ VisualC++(MFC限定)相談室 5■
http://pc3.2ch.net/test/read.cgi/tech/1028553308/
0976SITNAMNGNG
ふっ、ついに俺の出番か…。
1000はこのSITNAM様が頂戴する。
ふははははははは…
0977SITNAMNGNG
ヒッヒッヒ…
0978SITNAMNGNG
がんばるぞ!
0979SITNAMNGNG
          , -  ̄  ̄ `  ヽ 、
       ゝ´          ___ --´ヽ_
      〃`---|---l- ̄ ̄  __ ---  `ヽ.
    〃` ----| |--|\- ̄ ̄           ヽ.
    l    | | | |  \l\     ヽ       l
   l     | |   | |   \ ヽ.      l       l
   | /    | |__ l    ___ \    |       |
   レ´|  / / |,,- 、    ,- 、ヽ |   |-- 、   l
   | |   l 〃レ|    レ |ヾ |   |/  l   l
     |   l` ゝノ      ゞ.ノ ´ |   | ) /  l
     | |   |                |   | / 〃
     ||   l   ヽ        |   |  /
      |   ヽ 、  ヽ フ     |   |/
        l    / ヽ 、   _ - ´| /
      l  /      ̄l      |/.|_
        l/      /´ ̄l      | |_`\
       |   _,-/ /-/     , ―――´\
       __--l´  l /     /  ____l--__
0980SITNAMNGNG
         ,    -―-  、
       /            \
    /     /| /| ハ    ヽ_
   / /  / / // | | |  ヽ / /
  / _/ / / |/ |/  v N | | |/ /|   / ̄ ̄ ̄ ̄
   | ./ / |/TΤ   ГTヽ|( (/))| < マルチ
   |/レ | 〉 -┘ 、 └-  V ~ | |  \____
       v\ ″ ー  ″ イv w N
        ^ ` ー-    ノ  ヽ
         | |  |  /  / ∧
0981SITNAMNGNG
               , -'" ̄~"'-、
             /, ミ 彡⌒ヽ、ヽ、
            /, '//( .)\ヽ |lヽ |l
            l|/〃 / l ヾヾヽ l|ヽ l|
          〃 l| l| ノ从ハ从从ヽ|l从l|
            |l|l |l|l-tェ ´'ェェ-l|6)I||
            l|  l||i'"" , ""l||  I||   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
             __ l|i .  ヮ  l||  I|I|I <
           /   ̄  ! ー ' |||l  l|l|I|   |
          /      ヽ'      I||I`ヽI|I|  \_________________
          |  ,     L -─ I|I  ヽI
          |  |         l||     ヽ
          |/     y   _,i! v    |
          /      ,'      |    /
          |      |        |   /
         ι)__   .:人  (._) ,ノ   /
           |  ̄i~  `'ー-- ''~   /
 ,-、_       |   |   ゝ  /  ./
ζ    ̄ ̄ヽ _/|   |     /  /.ioー-,
 '-、  ⌒ /   |    |ヽ、_/   //!_iヾ'
 /  _/     |   |`ー-/   / /´i
'" /           |  |`ー/   /, '-'" |
/             |  |-/  ./'     |
              ノ _, -'~  /       |
          ,〈√'    /          |
0982SITNAMNGNG
             /;;;;;;;;;i;;;;;;;/;;;;;;;;/;;;/;;///ー-- - |;;;;;|;;;;;;;|l
             |;;;;;;;;;li;;;;;/;,,-/-,,/ |/ / ,-=-,,, .|;;;;;|;;;;;;;;| 1000は取らないでね
            il;;;;;;;;;|;;;;;;il~i (゚,,,i ' '  ' i ) , i |;i--;;;;;;;|
            |;;;;;;;;;;|;;;;||    ̄  ,,    ̄   .|;;|6/;;;;;;;|
            il|;;;;;;;;;|i;;;;;;;;ゝ ~~   I|  ~~  ,/;;;;~;;;;|;;;;;;|i
            |;;;;;;;;;;;|;;;;;;;;;~=,    :'_`ヽ  ./;;;;;;;;|;;;;;|;;;;;|l
           |i|;;;;;;|;;;|i;;;;;;;;;;;;;|~'-,,    ,,,,'.';;;;;;;;;;;;;|;;;;;;|;;;;;;;|i
           ;|;;;;;;;|;;;;|;;;;;;;;;;;;;il;;;;;| ~=--‐~ :;|;;;;;;;;;;;;;;;;;;;/-/~~~~^-,,
           |i;;;;;;;;;;;;;|;;;;;;;;;;;;;i-~|i      ~~~|;;;;;;;;;/        ~-,,
           il;;;;;;;,,=~|;;;;;;;;;;;;;|i ヽ   ,,,ノ ,,/|i;;;;;;;|i          ~-,
           |i,,-~ ,,,ヽ;;;;;;;;;;;;|       -~ |;;;;;;;;|    ,,,,       ~'=,
           ,-~  γ  ヾ;;;;;;;ヾ  ,,. ;:      ヾ;;;;;;|  ,,=~ \     /-,,
          /  ;:丿    |;;;;;;) ...,:;:'       ::|;;;;;|/::::::: ::::::/~-,, /    -,,
          /  /     |;;;;;li γ:;          :;;|=,,,:: :::::/     ~/       ~‐
         / ヽ/ .         :/;:          :ヾ;;:: :::/      ~‐
        /  i;''。;:       :|:;:     ;' 。',   ;| :: :::/
       /   ヾ.,; '      ::;\;:     ',';::   ;:,/::::;;/
      /    :;/ヽ:;:     ;;;ノ;;::ヽ;;::::     ,,::/;;;::;:/          /~⌒~^~^` :;ヽ
    /    ;:/   `ー---‐':::::;   :::ヾ;‐---‐'''''  ::::::;/         /          ::;ヽ
0983SITNAMNGNG
   //";;;;;;;;;;;;;;;;;;;;;;/    //::://::/::/:/;;/:/::i:::i:::i;/  `'、i::'、:;::/::::/::::;;;;;;;;;;;/`'''"
 ./;;;;;;;;;;;;;;;;;;;;;;;;;;/     .//;;:/i;;;/;;/:/.i/i:/|::;;;/:/;i    'i;;';;;ノ;;;;;;;;;;;;;;;;ミ;;/
 '`、;;;;;;;;;;;;;;;;;;;;;;;く      ./i:;;:/:/:;/;;// / i/ i;;;/i/i/_,,,,,,,_  彡/ ̄`''ー、;;;ヽノ
   ヽ;;;;;;;;;;;;;;;;;;;;;;ヽ、_   /:i:;;;;|:i::;/::(/ ̄`''-|://.'/、--,、, ` i;;:/     `';;i'
   ヽ;;;;;;;;;;;;;;;;;;;;;/'.、 /;;i:;;;;;i;;i:;|;;/;;'、、-=、::" ::  .、:'':)'ーノ:/     ::::/´
    \;;;;;;;;;;/.   \/;|;;;;i:;;i:;;|;;'、;'ヽ、:::::  、   ´~''' /;/     ::::/
      ヽ;;;/::.      ヽ|;;;;|:;i:;;;|/;'、'ヽ、   、--,   -/::/      ;;/
       ー、:::...      |::||:;':;;;;|//'、;/;;`:: 、'ー'.,、-'"/;;;/      :::/
        .\:::...     |;| i:;、;;;|-、,,/、/;/ ` ´:::::":i/      ::::/
         .\:::...    ヽ::i:;'、;;|__/:/ /   /:ノ";|i:..    .::::::/
        /::/\:::....   '、;'、:|,ヽ/:.\i:: /‐'::|:,;;|,::.. /´:::: ./
       ,/:://:;;;;\;::::.... ,/、;;;i'/::..." ` '":::::ノ'i,"~i:::../;::::: ../
     ./::/::/:::;;;/:;;;;ヽ;:/;;、-ヽ;i.'、,,,、:‐''''" ̄~` ヽ、-、/;:::.. ./
    /:::/::;/::;;;;/::::、‐''" ̄"´   i,/    .;'.;    .ヽ;i,;::::../
   .//::/:::/::::/;;;::/       _、-/i     " '     :::';|:::../
  /:/:/::::/:::/::ノ         ...::_、           :::i|、/,
. /:::/:;/;;/:;;/:'i.、       、‐-'"-‐'''        .:::i:::i:/"
/:;;/;;/:/;;;;;;/;;/:|:::..     ..:::'":::::::/'/:::....    ....:::::::i:/ノ
;;;/;;;;/:;;;;/;;;/:::i,::::::......  ..:::::::::::::'":::::":::::::::::::::::::::::::::::::ノノ´
;/;;/;;;;;;;;//::::;;;;';、:::::::::::::::::::::::::、-‐""::::::::,,,,,:::::::::::::_、‐ /
0984SITNAMNGNG
    i       ,i:i;;;;i                         ヽ、,,、::_、‐~´            i
    i       i,,i;;;ノ                         _、-~              i
    'i       i/´                       _、‐''、 :|、              i;
     i,                           _,,、-''~ノ:::::ヽ ::i              ,i、
    /、,                       ___、-‐'´ /_:::/:::::::::i ;i、___            i、"ー
   i´ i;;;ヽ、              _、‐:::::,、-"_,、-''~        _、-''"´~ ̄::::::::::::::~^''''ー--、,,,,i
    i |;;;;;i´ヽー、          ,,、‐_、-‐''"_、-~         /´:::::::::::::::::::::::::::::::::::::::::::::::::::::::::i
   i" i::::i.   `ー、_''ー-----‐‐'''~,,,,、-‐''_、-''~           /´::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::i
  / /::::::、    ~^'''''''''''ー‐‐---‐;:‐''"~            :,i´::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::i
  i i´::::::::、            /"              /´;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;_____::::::::::::::::::::::::i
,,i''"i-'::::::::::::ヽ           :/              i/;;;;;;;;;;;_,,,,、-ー'''''''"^~^~~^^''''ー--、,,,,_i'、__
‐´-'-------ヽ          '               :i;、-‐'''~        :::::::::::::::::::::::::::::::::'ー、.
0985SITNAMNGNG
        おにぎりワッショイ!!
     \\  おにぎりワッショイ!! //
 +   + \\ おにぎりワッショイ!!/+
                            +
.   +   /■\  /■\  /■\  +
      ( ´∀`∩(´∀`∩)( ´∀`)
 +  (( (つ   ノ(つ  丿(つ  つ ))  +
       ヽ  ( ノ ( ヽノ  ) ) )
       (_)し' し(_) (_)_)
0986SITNAMNGNG
           今だ!おにぎりゲットォォォォ!!

             ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄    (´´
          /⌒ヽ      ∧ ∧   )      (´⌒(´
         ( ■ )   ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡
                       ̄ ̄   (´⌒(´⌒;;
                   ズザーーーーーッ
0987SITNAMNGNG
             ガポッ!
           /■\   Σ ∧ ∧   )
        Σ( ´∀` )了 ⊂(゚Д゚⊂⌒`つ≡≡
0988SITNAMNGNG
     +   +    +   ワッショイ!
                   +
.     +   /■\   +
        ( ´∀`∩
   +  (( (つ   ノ ))  ∧ ∧ ・・・・
         ヽ ( ノ     (゚Д゚,,)
         (_)し'     ∩    ̄⊇〜
                     ̄ ̄ ̄
0989SITNAMNGNG
      きみもやらない?
.      ∧_∧
      ( ´∀`) /■\
      (    つ ̄ ̄    ∧ ∧ だ、だれがやるかゴルァ!
     .  | ||        (゚Д゚,,)
      (__)__)       ∩    ̄⊇〜
                     ̄ ̄ ̄
0990SITNAMNGNG
      そう。じゃっ
     ∧_∧
    (´∀` )   ポイッ
    (    )   ヽヽヽ    ∧ ∧
     | .| | )))        (゚Д゚,,)
    (__(____)    /■\ ∩    ̄⊇〜
               ̄ ̄    ̄ ̄ ̄
0991SITNAMNGNG
                    ∧ ∧ ・・・
                    (゚Д゚,,)
             /■\  ∩    ̄⊇〜
               ̄ ̄    ̄ ̄ ̄
0992SITNAMNGNG
                    ∧ 三  ∧
                    (゚Д゚ 三 ゚Д゚)
             /■\  ∩     ̄⊇〜
               ̄ ̄    ̄ ̄ ̄
0993SITNAMNGNG
    今だ!おにぎりゲットォォォォ!!

      ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄        (´´
            /■\  )     (´⌒(´
         ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
               ̄ ̄  (´⌒(´⌒;;
           ズザーーーーーッ
0994SITNAMNGNG
 |
 |
 |__∧
 |∀`) ・・・
 |  )
 |  |       !! ./■\  )
 | __)      Σ(゚Д゚⊂⌒`つ
┘             ̄ ̄
0995SITNAMNGNG
ついに995か…
0996SITNAMNGNG
 おにぎりワッショイ!
\_____ _______         /|
  /■\   |/                /  |
 ( ●∀`)                   |   |
 (づ   ,)                   |   |
 | |  |                ∧_∧  |    |
 (__)_)             (´∀` )/|  /
                   (    つ |/|
                    |  |  |     |
                  /|  (__)_)    |
       / ̄ ̄ ̄ ̄ ̄  ̄
        | バカか貴様
0997SITNAMNGNG
                                / ̄ ̄ ̄ ̄ ̄ ̄
                    /■\       < ワッショイ
               ___(´∀`  )_____   \______
           .__/___     _____, )__
         〃  .//    /    /     / /    〃⌒i
         |  ./ /     /    ./     / /    .i::::::::::i
   ____|  .しU /⌒\./    /     / | ____|;;;;;;;;;;;i
  [__]___|    / /-、 .\_.  /     Uし'[_]     .|
   | ||     |    / /i  i    /         | ||      |
   | ||____|____/ / .| .|\_ノ______..| ||      |
   |(_____ノ /_| |_________..| ||      |
   | LLLLLL./ __)L_| |LLLLLLLLLLLLLLLL. | ||_____」
   | ||    (_/   / i                .| ||    | ||
   |_||        / .ノ               |_||    |_||
            (_/
0998SITNAMNGNG
          / ̄ ̄ ̄ ̄ ̄ ̄ ̄
          |おにぎりワッショイ!
          \
             ̄|/ ̄ ̄ ̄ ̄
          ___                     |  \ \
    /    / ))))                     |
   /    /_⊂ノ                 | ヽヽ .|\
  /    //              i 、、. | ヽヽ .|\   |  \
 / /  \\  /■\  ド ド |ヽ   |\  |    |
/ /     \\(  ´∀`)
/ /     ヽ      ⌒\
/       ノ      /> >
        /     / 6三ノ
       /  / \ \ ` ̄
―    /  ん、  \ \
――  (__ (   >  )
⌒ヽ   ’ ・`し'  / /
  人, ’ ’,  ( ̄ /
Y⌒ヽ)⌒ヽ、  )  |
          \_つ
0999デフォルトの名無しさんNGNG
1000
1000デフォルトの名無しさんNGNG
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。