とか言いつつ「メニューとダイアログとかはリソースですが」って言ってる315にワロタ
画像の検索っぽいことをしようとしてるんだけど、
50枚くらいのbmp(24bit、640×480)の中から検索する場合、
どんな感じで組んだらいいですか?
ちなみにSDKでやってます。
>332
画像の何を検索するの?
>333
俗に言う感性情報検索ってものを作ろうと思ってて、
画像の色彩情報を頼りにいろいろ検索しようと思ってます。
335 :
デフォルトの名無しさん:2005/04/22(金) 13:12:08
ダイアログボックスにコンボボックスを設定して、中に文字を選択できるように
したいんですけど、うまくいきません。
空のコンボボックスが出来てしまいます。
参考にしたサイトでは、配列に格納されている文字をコンボボックスに登録する
という風になってるんですが、出来たコンボボックスは空っぽ・・・。
これは何でなのでしょう?
WM_INITDIALOGでコンボボックスのリストにアイテムを登録しる
337 :
デフォルトの名無しさん:2005/04/22(金) 17:02:43
>>336 ありがとうございます。そちらは解決しました。
現在、win32でエクセルファイルを開かずにデータを取得し、
ダイアログボックスで設定を入力した上で、その設定を元にセルのデータ
チェックをするというプログラムを作っています。
計算のロジックは出来たのですが、エクセルの読み込みやダイアログボックス
をメイン上でうまく出せません。
どうしたら良いでしょうか?
338 :
日曜プログラマー:2005/05/08(日) 19:31:57
どなたかわかるかたがみえたら教えてください。
テキストを印刷するプログラムで文字化けしてしまい困っています。
開発環境はWindowsXp、VC++ver4.0SEです。
SDIでMFCを使って、印刷をさせたく、本やWebを参考になんとかC***View::OnPrint()
までたどりつきました。
印刷内容はCStringArrayにある適当なCStringを抽出してきた文章で、レポート用紙
のような用紙に余白、行数を指定して印刷します。
Viewでループを組んで、1行ごとの文字列をDocumentに要求しており、Documentでは
要求されるたびに文章の抽出、与えられた行数からの文字列の抽出を行っています。
CStringの行数を調べるために、Findで'\n'の位置を見つけて、Rightで行を区切っていく
作業と、Leftを使って与えられた1行の文字数での抽出を行った所、文字化けしてしまいます。
どうやらおおもとのCStringをreturnで返してやると、文章はちゃんと取り出せてそうで、
その後にCString.IsEmpty()を行った直後にreturnで返すと文字化けしているようです。
いろいろいじった結果、IsEmptyやFindなどを使った後のCStringをreturnすると文字化けする
ようなので、1文字ずつ改行の判定をするようにしてみたりしましたがうまくいかず途方に
暮れています。
よろしくお願いします。疲れました…。
VC4.0SEって・・・ナニソレ
340 :
日曜プログラマー:2005/05/08(日) 20:13:33
あいやー。
Visual C++ ver4.0 Standard editionのつもりでつ。
たぶん、7年くらい前の購入です。
日曜プログラマですが、使えそうなのができたら仕事でも使ってます。
原因が何かわかるような気もするが書くのマンドクセ
>>341 ははぁ。書くのがめんどくさいような原因なのですね。
とりあえず、次の休みにがんばってみますが…
次は元のデータをそのまま返して、Viewで処理してみようかなぁ
自己解決しました。
OnPrint()でフォント指定すれば治りました。
恥ずかしい…。orz
どっかのWeb siteの印刷の解説でOnBeginPrinting()でフォント指定してたので
それを流用してましたが、関数を抜けたら作ったフォントは当然破棄されますね。
破棄されてもメモリに情報が残っているために、そこの内容が書き換わるまでは
内容が保持されるような挙動を示していたと言うことですね。
もう、不思議な動きにおもいっきりはまりました。
レスくださった皆様、ありがとうございます。
私はまたプログラミングに戻ります。
VC++6.0でUSBメモリのデバイス インスタンス IDを取得する方法をどうやったらできるのか分かる方、よろしくお願いします。
345 :
デフォルトの名無しさん:2005/06/20(月) 00:28:24
学校の研究で作っているシミュレーションプログラムに
WindowsでGUIなインタフェースをつけるように先生に言われ、
「猫でも…」を買ってきてとりあえずボタンクリックで実行できるようにはしたんですが、
計算中はウィンドウの再描画なども行われず、全くのだんまりになってしまって、
何かのバグで停止してしまっているかのように見えてしまいます。
インストーラやダウンローダのように「何%まで終了しました」というウィンドウを表示したいのですが、
どうすればいいのか全く分かりません。
計算は単純なものをループで回しているだけのものですので、
そのループの何回目まで終了したかを表示すればいいんだと思うのですが…。
どのように書けばいいのか教えていただけないでしょうか。
環境はVisualStudi.net2003で言語はVC++を使っています。
また、できれば計算を途中で中止する「キャンセル」ボタンもつけたいとも思っています。
>>345 ヒントをあげよう。( ´∀`)っ[Sleep()]
スレッドでもいいんだが、スレッドをやらせるのは危険な気がする
347 :
345:2005/06/20(月) 06:08:42
>>346 ヒントありがとうございます。
が、頂いたヒントから
・ループ中にSleep(10)などを突っ込む
・「VC++ 再描画 sleep」などの語句で検索
をしてみましたが、解決の糸口も見つけられませんでした。
わがままで申し訳ありませんが、もう少しヒント(できれば答え自体)を
教えていただけないでしょうか。
Sleep()を突っ込む場所
>>346 おぃおぃ、Sleepじゃ何の解決にもならんだろ。
347も調べたなら、それくらい気づけよ。
スレッドにするか、ループ中にメッセージポンプを廻すか。
351 :
345:2005/06/22(水) 22:29:37
学校のVC++.NETがインストールされたPCが使えなくて、返事が遅くなってしまいました。
ごめんなさい。
>>348 どこにどういう風にSleepをいれれば、どういう理屈で解決するのか全く分かないんです。
>>349 さん
が書かれている通り「Sleepでどうやって解決するんだろう?」とは思ったんですが、
私が知らないだけで、どこかにSleepをいれればうまくいくものなのか、
それだけで済むならそれが一番いいのかなと思っています。
>>350 progressとかで検索して、メッセージポンプという言葉や、
具体的なソースのようなものもあったのですが、
(例
ttp://hp.vector.co.jp/authors/VA007941/program/no2051.html)
そのまま貼り付ければOKというようなお手軽なものが見つけられず、
どうにもできない状況です。
皆様に頼ってばかりで申し訳ないのですが、
メッセージポンプについてご教示ください。
352 :
デフォルトの名無しさん:2005/06/22(水) 22:41:34
セーフモードってどうしたら直るんですか?教えてください
>>351 お前が張ったURLの先にあるMessagePump()はそのまま貼って使えるが。
356 :
345:2005/06/22(水) 23:21:24
>>353 さっきの書き込みの後、MessagePump()だけを使ってうまくいったんで、
報告しようと思って書き込みに来たらそのままのことを指摘して頂いることを知りました。
もう少し、やってみてから書き込むべきだったと反省しています。
>>354 > 根本が間違っているから、
> そのまま貼り付ければOKなんてものを探すな。
先生から「金曜までに…」と言われていたので焦ってお手軽な手を求めてしまっていました。
反省しています。
先のMessagePump()もどういう理屈なのか理解できていないまま使っていますが、
これから少しでも理解できるように努力していきます。
ありがとうございました。
357 :
デフォルトの名無しさん:2005/07/04(月) 13:33:53
UpdateData(TRUE);
ix = m_ix; //m_ixはエディットボックスのメンバ変数
こんな感じでエディットボックスの数値を取得しようとしたんですが、
エディットボックスの値が数値以外や空白の場合、固まってしまいます。
デバックモードで見たところ、UpdateData(TRUE);で止まっているようなのですが、
どうすればよいのでしょう?
358 :
357:2005/07/04(月) 20:57:12
359 :
デフォルトの名無しさん:2005/07/28(木) 22:20:34
【環境】VC++6.0 Win2000 Access2000
DAOを使用し、以下のとおり実装しようとしてます。
1.D/B接続用インスタンス生成
2.D/B接続
3.レコードセットインスタンス生成
4.クエリーの発行
5.〜4の結果を使用した処理もろもろ
6.レコードセットクローズ
7.D/Bクローズ
全てローカルスレッドで処理すると正常に終わるのですが、
4.のみをワーカスレッド内で行うと7でエラーになってしまいます。
回避方法をご存知の方、どなたかお知恵をお貸しください。
360 :
デフォルトの名無しさん:2005/09/09(金) 19:44:33
IMEバーがディスクトップに置かれている時、
強制的にタスクバーに戻して、MaxmizeでWindowを表示したい。
どなたか方法教えてください。
環境 VC++6.0 WndowsXP
>IMEバーがディスクトップに
円盤上?
遠隔操作ソフトを作りたいのですが、どなたか手を貸してください。
VNCとかリモートデスクトップ接続で充分じゃん。
364 :
デフォルトの名無しさん:2005/10/19(水) 15:45:04
VC6 SP6で
struct tako{
double x;
double y;
};
class hoge{
public:
struct tako ika[640][480];//←この位置で宣言するとおk
struct tako kai[256][256];//←この位置で宣言するとおk
void funk(void);
};
void hoge::funk(void){
//struct tako ika[640][480];//←この位置で宣言するとダメぽ
//struct tako kai[256][256];//←この位置で宣言するとダメぽ
・
・
・
}
&ika[0][0] →0x1063f664
&kai[256][0] →0x1063f664
てな感じでメンバ関数の中で配列宣言するとアドレス被るヤツが現れるのですが
(メンバ変数として宣言するとアドレスが被らない)
これって仕様ですかね?
365 :
デフォルトの名無しさん:2005/10/19(水) 17:16:42
MFCまたはWin32APIでジョイスティックを使用する方法を知りたいです。
手っ取り早い方法または参考サイトを教えていただけるとうれしいです。
いろいろと検索かけてみましたがなかなか見つからないので、よろしくおねがいします。
>>364 kai[256]と宣言するとkai[0]〜kai[255]までの256個の要素が使える。
よって
>>366
ごめ間違えた
&ika[0][0] →0x1063f664
&kai[255][0] →0x1063f664
だ
>>365 joyGetPosEx使え
1分もかからず検索できたぞ糞が
>>364 とりあえず関数の自動変数にしたらスタックオーバーフローするだろ。
VC++.NET 2003 で stdafx.cpp と stdafx.h をプロジェクトから外すとコンパイルエラーになるのですが外しちゃ駄目なのですか?
駄目なら理由を教えてくれると幸いです。
>>371 その2ファイルはコンパイル時間短縮のためのプリコンパイルドヘッダにかかわっているから。
プロジェクトのプロパティからプリコンパイル済みヘッダを使わない設定にすれば削除できる。
解りやすい説明ありがとう >372
OS :Windows2000
言語 :VC++.net 2003
その他:Excel2000
VC++からExcelのデータを読み書き制御をやっているんですが、
Excelのセル(行)を挿入するってどうやればいいのですか?
(例えば1行目2行目にそれぞれデータが入っていて、
2行目に新規でデータ行を挿入したい(元の2行目は3行目にずれる))
下記のURLを参考にさせてもらっているんですが、
セル挿入らしきものはなくて、URLのサイトから
[Excelを操作しよう]-[範囲指定したCellのコピーと貼り付け]
をクリックしたところに挙げられているやり方で、ずらしてコピーしていく
方法しかないのかな?と思っています。
もっと簡単な方法をご存知の方は、是非ご教授お願いします。
(参考URL)
ttp://www.attain-sys.com/vc/vc.html
それこそVBAでやればいいことだと思うのだが。
>374
私へのレス…ですよね?
VCでは無理ってことですか?
仕事なんでVCで実現しなければならないんです(>_<)
もしご存知でしたら、お願いします。
>>376 いや、漏れなら仕事だからこそVBAでやっつけるような内容だと思っただけ。
つまり、その手の仕事はVBAで片付けるからVC++から制御したことはないのだよ。
Copy/Pasteができるのなら、その他の制御もできそうだから頑張って探したまえ。
378 :
374:2005/11/03(木) 18:23:53
>> 377
374=376です。
376のレス先と名前が変になってました…。
なるほど、あまりVC++でやらない制御なのかな?
がんばって探してみます。
もし、やったことがある方がおられたら、お願いします。。
とりあえずVBAでやれるか探して、(VBAならいっぱい見つかるだろう)
その後でそのルーチンをVC++へ移植すればいい。
ActiveXの建前として言語非依存がある。
ある言語でできることは他の言語でできないわけがないことになっている。
言語によって簡単だったり面倒だったりの違いはあるけど。
380 :
374:
>> 379
ありがとうございます。
まずはVBAで探してみますね。