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

C++Builder相談室 Part15

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2005/08/21(日) 17:48:30
C++Builderに関する質問・回答や議論等を行う相談室スレッド。


過去スレ・関連サイトは>>2-7あたり。
0102デフォルトの名無しさん2005/09/12(月) 04:14:24
http://code.junki.main.jp/
http://blog.livedoor.jp/junki560/
0103デフォルトの名無しさん2005/09/12(月) 05:38:10
>>100
機動は早くなるよ
0104デフォルトの名無しさん2005/09/12(月) 07:35:51
C++Builder6 Proで国際化対応、すなわち英語と日本語の切り替えが出来るようなアプリケーションを作りたいのですが、
どのような方法が、良いのでしょうか?

起動時にOSの言語を判定して、キャプションやフォントを変更していく以外に何はよい方法はないでしょうか?
0105デフォルトの名無しさん2005/09/12(月) 11:15:28
http://www.geocities.jp/octbery/_program/scanline.html
http://www.plustarnet.com/aspil/Programming/cpp01.htm
//コンストラクタ(constructor)とデストラクタ(destructor)
__fastcall ~TForm1();

__fastcall TForm1::~TForm1()

{

delete pBitmap;
delete pBitmap2;
delete tmpImage;

pixelinfolist->Clear();
delete pixelinfolist;

pixelinfolist2->Clear();
delete pixelinfolist2;
}
0106デフォルトの名無しさん2005/09/12(月) 22:16:05
>>104
リソースdllを丸ごとすげ替える方法がある。
ヘルプ読め
0107デフォルトの名無しさん2005/09/12(月) 23:58:34
>>106
ヘルプを読んでみたのですが、フォームの内容をDLLに保存する方法がよく分かりません
0108デフォルトの名無しさん2005/09/13(火) 08:16:26
http://makimo.to/2ch/piza2_tech/969/969458279.html
http://makimo.to/2ch/piza2_tech/997/997074601.html
http://makimo.to/2ch/pc3_tech/1016/1016065855.html
http://makimo.to/2ch/pc2_tech/1035/1035596146.html
http://makimo.to/2ch/pc2_tech/1045/1045542179.html
http://makimo.to/2ch/pc5_tech/1054/1054280736.html
http://makimo.to/2ch/pc2_tech/1061/1061594556.html
http://makimo.to/2ch/pc5_tech/1080/1080541814.html
http://makimo.to/2ch/pc5_tech/1089/1089299158.html
http://makimo.to/2ch/pc5_tech/1094/1094749339.html
http://makimo.to/2ch/pc5_tech/1099/1099238936.html
http://makimo.to/2ch/pc8_tech/1108/1108468718.html
0109デフォルトの名無しさん2005/09/13(火) 18:19:07
>>104
テキストファイルからボタンのキャプションなどを読み込めばいいのでは?
0110デフォルトの名無しさん2005/09/13(火) 20:25:41
>>107
リソースdllウィザードとかその類いのが新規作成の中に無いか?
0111デフォルトの名無しさん2005/09/14(水) 00:22:18
borland c++ builder 6.0 professional でSDLを導入しようと思ってます。
行ったことは、まず
SDL-1.2.9.zipをダウンロードして展開。
中に入っていたBorland.zipを展開。(Borlandディレクトリができる)
Borland\bcb6にlibSDL.bpgをダブルクリックする。
プロジェクトメニューからすべてのプロジェクトをメイクをしました。
そうすると、パッケージのインポートライブラリーが見つかりませんと出ました。
これは、同梱されていたBorland.htmlというファイルを参考に実行しましたが
うまくできません。
どうやったらうまく導入できるんでしょうか?
0112デフォルトの名無しさん2005/09/14(水) 12:57:16
>>111
試してみたけどプロジェクトが出鱈目な感じだった。一応できたので以下やってみた手順。

・aliens.exeプロジェクトは、aliens.cが見当たらないのであきらめる。libSDLプロジェクトグループからaliensを削除。デモゲームらしい。
・SDL.dllプロジェクトにSDL-1.2.9/src/cpuinfo/SDL_cpuinfo.cを追加する。
・SDLmain.libプロジェクトのSDL_main.cを削除して、代わりにSDL-1.2.9/src/main/win32/SDL_win32_main.cを追加する。
・IDEを閉じた状態で、SDL.bprとgraywin.bprをメモ帳等の適当なエディタで開いて、「<PACKAGES value=vcl.bpi rtl.bpi…略」となってる部分を、「<PACKAGES value=""/>」とするかこのノード自体を削除して保存する。
・libSDLを開いて、「すべてのプロジェクトを再構築」を実行。
・途中で何回かコンパイルエラーが出るので、その都度userWindowProcを(FARPROC)userWindowProcという風にキャストして再度コンパイル。

で、コンパイルはできた。
0113デフォルトの名無しさん2005/09/14(水) 14:06:30
>>112
どうも試してくれありがとう。
あれから、色々検索しまして、簡単な導入方法がわかりました。
SDL-1.2.9-win32.zipの中のSDL.DLLをc:\windows\systemディレクトリに入れて
SDL-1.2.9.zipの中のborland.zipを展開した中に入っているものを全部borland C++ builder
をインストールした場所の各ディレクトリに入れました。
ヘッダファイルもinclude\SDKに入れまして、ライブラリもlib\SDKに入れてしまい
bcc32.cfgとilink32.cfgにパスを通して終わりです。
実際にSDLのテストプログラムをコンパイルしてみましたら、うまく実行できました。
0114デフォルトの名無しさん2005/09/14(水) 19:49:33
>>113
やっぱランタイムだけでよかったのね。DLLをソースからビルドしたい理由があったのかと思った。
0115デフォルトの名無しさん2005/09/15(木) 09:28:31
TMemoryStreamに読み込んだグレースケールなDIBを
TImageに表示するにはどうすればいいのでしょうか?
そのままTBitmap::ScanLineで読み込んでも変な表示がされるのみでしてorz
0116デフォルトの名無しさん2005/09/15(木) 10:22:57
TBitmap には LoadFromStream ってメソッドが Delphi ではあるんだが
0117デフォルトの名無しさん2005/09/15(木) 10:23:26
>>115
TImage::Picture::Bitmap::KiadFromStream使えば?
0118デフォルトの名無しさん2005/09/15(木) 10:24:09
> そのままTBitmap::ScanLineで読み込んでも変な表示がされるのみでしてorz

ScanLine でコピーするならパレットもグレースケール化しないとね。
01191152005/09/15(木) 11:14:29
>>116>>117
LoadFromStreamでは「ビットマップイメージが不正です」と言われてしまいます。
DIBフォーマットってTBitmapでは直接読めないのでしょうか?
この辺りの処理をちゃんとやってないからScanLineでもダメなのでしょうねorz
0120デフォルトの名無しさん2005/09/15(木) 11:25:42
LoadFromStream で読めるのはビットマップのファイルイメージそのままのときだけ。
読み込み先の PixelFormat はどうなってます?

pf8bit なら、パレットをグレイスケール化することは必須
pf24bit なら ScanLine は TRGBTriple へのポインタだから RGB に同じ値を与えてグレースケールにする
pf32bit なら ScanLine は TRGBQuad 以下同上
0121デフォルトの名無しさん2005/09/15(木) 14:16:14
>>115
Graphics:TBitmap::PixelFormatをいじったか?

pfDeviceにでもなってんじゃないの?pf1bitに変更汁。
0122デフォルトの名無しさん2005/09/15(木) 14:42:13
> pf1bitに変更汁。

pf8bit だろ、グレイスケールといえば普通。pf1bit ならスケールなんてない。黒白
0123デフォルトの名無しさん2005/09/15(木) 15:22:08
あれだな。昔の256色モード。パレットか。懐かしいな。
0124デフォルトの名無しさん2005/09/15(木) 15:27:55
64bitプログラムは作れますか?
01251152005/09/15(木) 16:04:38
PixelFormatはpf8bitにしてあります。

さっぱりワケわかめです。どうも読み込もうとしているDIBが画像データのみで、
ヘッダ情報が含まれていないようです。
ググっても、微に入り細に渡るBitmapフォーマットについての説明(勉強しているのなら
ありがたいですが、それは時間のある時に…)はあっても「だからこうしろゴルァ!」という
ズバッとしたサンプルソースがありませんorz
0126デフォルトの名無しさん2005/09/15(木) 16:17:40
>>125
データにWindowsBitmapのヘッダ付いてないならScanlineで書き込むしかない。
01271152005/09/15(木) 17:28:17
TBitmap::HandleTypeにbmDIBを設定し
上記のようにTBitmap::PixelFormatはpf8bitに設定して
TBitmap::Canvas::Pixels[x][y]にDIBの画像データをちまちまと入れたら出来ました。
お騒がせしました。
0128デフォルトの名無しさん2005/09/15(木) 18:28:34
パレットはどうなったん?
0129デフォルトの名無しさん2005/09/15(木) 18:29:11
>>127
Pixelsは猛烈に遅くなるからやめい。
0130デフォルトの名無しさん2005/09/15(木) 18:29:15
> TBitmap::Canvas::Pixels[x][y]にDIBの画像データをちまちまと入れたら出来ました。

Pixels 使うのは最低だな
0131デフォルトの名無しさん2005/09/16(金) 01:06:17
>>127
だからScanLineを使って入れろというに。
Pixels使うと、一ドット毎にシステムコール起こるの知ってる?
0132デフォルトの名無しさん2005/09/16(金) 05:22:48
バイナリファイルの内容をメモ帳の様にTMemoに読み込むには
どうしたらいいでしょうか。当然NULLで文字が切れてしまいます。
0133デフォルトの名無しさん2005/09/16(金) 08:33:35
>>132
1バイトづつIntToHex
0134デフォルトの名無しさん2005/09/16(金) 09:07:48
#define NO_WIN32_LEAN_AND_MEAN
0135デフォルトの名無しさん2005/09/18(日) 18:04:00
C++Builderを使用しているのですが、BuilderからExcelを操作する(グラフの書き方)
方法がわかりません。
Excelに数字を保存する方法はわかったのですが、グラフの書き方がわからないので、
知っている人がいれば教えてください。
0136ミ,,゚Д゚彡 ◆A6VzDeLphI 2005/09/18(日) 20:38:29
とある行or列にデータが入ったら
グラフが描かれるテンプレートを用意して
xltとして保存しておいて

Excelをコントロールするとき
Excel起動後、新規シートではなく
xltを読み込んで動作させてはいかがかと。
0137デフォルトの名無しさん2005/09/18(日) 22:03:55
64ビットのプログラムは作れますか?
0138デフォルトの名無しさん2005/09/18(日) 22:17:03
RichEditへの描画
投稿日 : 2005/08/01(Mon) 10:35
投稿者 : lovez00

RichEditにはCanvasプロパティがないので、
使い捨てCanvasを作れば解決です。
練習がんばってねー。

//-------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//使い捨てCanvas
TCanvas *RECanvas = new TCanvas;
RECanvas->Handle = GetDC( RichEdit1->Handle );

//ペン設定
RECanvas->Pen->Color = clBlack;
RECanvas->Pen->Width = 2;

//線を引く
RECanvas->MoveTo( 0, 20 );
RECanvas->LineTo( RichEdit1->ClientWidth, 20 );

//使い終わったら消す
delete RECanvas;
}
0139デフォルトの名無しさん2005/09/19(月) 14:39:17
デスクトップに文字などを表示するには

void __fastcall TForm1::Button1Click(TObject *Sender)
{

TCanvas *c=new TCanvas;
c->Handle= GetDC(0);
//ここから好きな処理をする
c->Font->Size= 100;
c->TextOut(10,10,"いろは");
c->MoveTo(100,100);
c->LineTo(500,500);
//ここまで
ReleaseDC(0,c->Handle);

delete c;

}
0140デフォルトの名無しさん2005/09/20(火) 05:30:42
>>132
処理に困っているのは 0x00 だけ?
バイナリデータって聞くとそれ以外にも普通に表示されないコードが
あると思っちゃうけど無いの?
もしあるならどういう風に表示させるつもり?

TFileStream::Read() を使って unsigned char の配列に入れて
表示したいように加工してから表示・・・?
0141デフォルトの名無しさん2005/09/21(水) 00:21:17
CppWebBrowser1NewWindow2(TObject *Sender,
LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel)
{
一部省略
*ppDisp = CppWebBrowser->Application;

}

*ppDisp = CppWebBrowser->Application;

ってどういう意味なのですか?一般的に

0142デフォルトの名無しさん2005/09/21(水) 00:56:00
一般的に言うと>>141はかなりのバk(ry
0143デフォルトの名無しさん2005/09/21(水) 02:41:42
英語版Windows上で実行したときに、エラーメッセージを英語化したいのですが、どのようにしたらよいのでしょうか?
0144デフォルトの名無しさん2005/09/21(水) 03:22:06
>>143
パッケージを使ってビルドすれば、BPLに対応するリソースdll(日本語ならJPN)が自動で選ばれる。リソースdllが無ければVCL内のメッセージについては英語のはず。
静的ビルドのときは、CDに入ってる(←バージョンによっては)英語版VCLでビルドするか、最悪でもやはりリソースとして.exeに埋めこまれてるのでリソース編集ツールで置き換えられる。
0145デフォルトの名無しさん2005/09/21(水) 03:23:28
日本語ならJPだった。
0146デフォルトの名無しさん2005/09/21(水) 11:19:32
C++BuilderのTPageControlで、一番最後のタブを削除すると
強制的に最初のタブがアクティブになってしまうけど、
私はその削除するタブの一個前をアクティブにしたいのだが、
どうすれば良いのですかね。今現在ページの移動が見苦しい

<現在の擬似コーディング>

//現在のページ数
int PageNum = PageCtrl->PageCount;
//削除するページを得る(最後のページ)
TTabSheet *pDelPage = PageCtrl->Pages[PageNum - 1];
//次にアクティブにするページ
TTabSheet *pNextActivePage = PageCtrl->Pages[PageNum - 2];
//ページ削除(一旦先頭のページに移動)
delete pDelPage;
//次にアクティブにするページに移動(仕方なく入れてる)
PageCtrl->ActivePage = pNextActivePage;
0147デフォルトの名無しさん2005/09/21(水) 13:08:12
>>146
削除前に移動してもだめ?
0148デフォルトの名無しさん2005/09/21(水) 13:51:16
>>146
TPageControl::RemovePageをオーバライドするしか無いような‥‥
てかそこで削除したページの次を検索してそのページに切り替え動作やってるようだ。
01491462005/09/21(水) 14:05:24
>>147 削除前に移動しても、やっぱり最初のページに移動してしまいます。
>>148 TPageControl::RemovePageは、privateにあって難しいかも。 
VCLのソースそのものの書き換えが必要?
0150デフォルトの名無しさん2005/09/21(水) 14:44:55
>>149
ヘッダ書き換えで行けないかね‥‥
0151デフォルトの名無しさん2005/09/21(水) 17:01:36
>>149
TPageControlを継承した派生クラス作って、
RemovePage()をオーバーライドでどう?
0152デフォルトの名無しさん2005/09/21(水) 18:33:37
そういやTPageControlのRemovePageは呼び出す必要なかったな‥‥
01531462005/09/22(木) 09:03:53
>>もっと詳しく・・
0154デフォルトの名無しさん2005/09/22(木) 09:18:59
>>153
class Base {
private:
 virtual void func() { cout << "Base::func()\n"; }
public:
 virtual void funca() { func(); }
};

class Ext : public Base {
public:
 virtual void func() { cout << "Ext::func()\n"; }
};

main() {
 Ext a;
 a.funca();
 cout << endl;
}
0155デフォルトの名無しさん2005/09/22(木) 13:40:32
568 名前: デフォルトの名無しさん [sage] 投稿日: 2005/09/22(木) 11:44:11
並べてみると壮観だね

A list of features in Dexter
http://groups.google.co.jp/group/borland.public.cppbuilder.non-technical/msg/901d7e5f9cb15e40?hl=ja&
0156デフォルトの名無しさん2005/09/22(木) 15:31:15
良さげだね。SSE2は既にサポートしてるような。SSE3の間違いだべか。
0157デフォルトの名無しさん2005/09/23(金) 23:37:18
名前 点数
二郎 90
一郎 70
太郎 80

点数をソートして、名前を点数順に取得する方法がわかりません。
知っている人がいれば教えてください。
0158デフォルトの名無しさん2005/09/23(金) 23:44:00
>>157
TStringList
0159デフォルトの名無しさん2005/09/23(金) 23:59:49
>157
158じゃないけど、TStringListで良いんじゃないの?
その場合、090という風に桁数を合わせないとダメだけど。
090二郎
070一郎
080三郎
という感じにして、Sort()で昇順になるから、逆順(高い者順)なら
下から取ってくれば良い。
0160デフォルトの名無しさん2005/09/24(土) 01:55:00
>>157

//構造体を定義
struct name_value {
 String name;
 int value;
 name_value( String n=EmptyStr, int v=0 ) : name(n), value(v) {};
};
bool operator<( const name_value& lh, const name_value& rh ) {
 return lh.value < rh.value;
}

//こんなふうにつかう
#include <set>
void some_function()
{
 typedef std::set<name_value> name_value_set;
 name_value_set nvset;
 nvset.insert( name_value("二郎",90) );
 nvset.insert( name_value("一郎",70) );
 nvset.insert( name_value("太郎",80) );
 ...
 //あとは頭からでもけつからでも好きな方から読み出せばいい。
}
0161デフォルトの名無しさん2005/09/24(土) 12:31:08
>>156
IDEの起動に物凄い時間がかかってメモリもありえないほど喰うけどな
0162デフォルトの名無しさん2005/09/24(土) 12:33:01
>>160さん
bcb6を使って>>160を試しましたが、
リンカエラーになります。
0163デフォルトの名無しさん2005/09/24(土) 13:15:18
>>162
そうか。
で、それがどうかしたか?
>>160のソースに問題はないのでリンカエラーを起こしたのは君の責任だ。
0164デフォルトの名無しさん2005/09/24(土) 13:20:21
>>162
俺は>>160さんのソースを打ち込んで、適当にアレンジしてMemoに
中身を貼り付けるようにしてみたが、ちゃんと動いたぞ。
0165 2005/09/24(土) 13:42:49
メッセージループをいじくるにはどうしたら言いのですか。
Windows用のPeekMessageとGDIを使った簡単なアニメーションと言うかゲームみたいなプログラムのソースを読んだんですが、C++Builderのプログラムに移植したいと思ったんですけど、PeekMessageを使っててメッセージループ中に他の自作関数を呼んだりしないといけません。
でもC++Builderのプログラムにはメッセージループがありません。どこにあるのですか?どうしたらカスタマイズできますか。
0166デフォルトの名無しさん2005/09/24(土) 14:09:07
>>165
BEGIN_MESSAGE_MAP
0167デフォルトの名無しさん2005/09/24(土) 14:25:09
ユーザー定義のメッセージを受け取るには?
http://www.borland.co.jp/qanda/cbuilder/c0002864.html
0168デフォルトの名無しさん2005/09/24(土) 14:32:46
>>165
TApplicationクラスのprivate関数ProcessMessageにメッセージループはある
0169デフォルトの名無しさん2005/09/24(土) 14:59:01
VBで言うところの

strA = "Button1"
From1.controls(strA).Visible = True

みたいにBCBで

Form1 -> strA -> Visible = True

みたいには出来ますか。


0170デフォルトの名無しさん2005/09/24(土) 15:21:08
>>169
String strA = "Button1";
Form1->FindChildControl(strA)->Visible = True;

ただし、実際はifでくくったほうが良い。

if ( TControl* ctrl = Form1->FincChildControl(strA) )
 ctrl->Visible = True;

0171デフォルトの名無しさん2005/09/24(土) 15:24:05
>>170
さすがだね。ありがとう
0172デフォルトの名無しさん2005/09/24(土) 15:24:51
↑
×True
○true
×FincChildControl
○FindChildControl
0173デフォルトの名無しさん2005/09/24(土) 15:53:51
boostのBCBへのインストールの方法がよく分かりません。
boostを使えるようにする方法を教えてく浅い。
0174デフォルトの名無しさん2005/09/24(土) 15:57:42
>>173
binフォルダ中のbcc32.cfgに
-I"C:\boost_1_33_0"等を追加。既に-Iがあると思うので、セミコロンで
区切って後ろに追加する。

buildは・・・・・諦めた方がいいかもね。
0175デフォルトの名無しさん2005/09/24(土) 17:43:20
>>173
http://groups.google.co.jp/group/borland.public.cppbuilder.non-technical/msg/901d7e5f9cb15e40?hl=ja&
Here's a list of things I got out of it for Dexter.
- Conformance for Boost and ACE. Almost 100% ANSI conformance.

※直訳
Delphi2006買ってください><
0176デフォルトの名無しさん2005/09/24(土) 17:54:27
These are not planned.
- Updates for BCB6

orz
0177デフォルトの名無しさん2005/09/24(土) 21:30:34
重くなるだけみたいね
0178デフォルトの名無しさん2005/09/24(土) 23:27:46
AnsiString z = "070";
先頭の0を取り除く方法がわかりません。
0179デフォルトの名無しさん2005/09/24(土) 23:30:32
>>178
z = AnsiString(z.ToInt());
0180デフォルトの名無しさん2005/09/24(土) 23:32:29
>>178
AnsiString z = "070";
Caption = IntToStr( StrToInt(z) + 0 );
0181デフォルトの名無しさん2005/09/24(土) 23:37:06
Caption = Format("%3.3d", OPENARRAY(TVarRec, (70))); //070
0182デフォルトの名無しさん2005/09/25(日) 00:03:21
>>178
char *p=new char[z.Length()+1];
if(p){
 strcpy(p,z.c_str());
 z=AnsiString(p+1);
 delete[] p;
}
0183デフォルトの名無しさん2005/09/25(日) 00:20:32
>>157

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList* MyList = new TStringList();

AnsiString a = "070二郎";
AnsiString b = "100一郎";
AnsiString c = "080三郎";

MyList->Add(a);
MyList->Add(b);
MyList->Add(c);
MyList->Sort();

Memo1->Lines->Add(MyList->Count);
Memo1->Lines->Add(MyList->IndexOf(a));
Memo1->Lines->Add(MyList->IndexOf(c));
Memo1->Lines->Add(MyList->IndexOf(b));

Memo1->Lines->Add(MyList->Strings[0]);

Memo1->Lines->Add( ( (MyList->Strings[0]).SubString(1,3)).ToInt() );
Memo1->Lines->Add( ((WideString)MyList->Strings[0]).SubString(4,2) );

delete MyList;
}
0184デフォルトの名無しさん2005/09/25(日) 00:24:01
>>157 >>178
ま、なんだ。こういうところで安易に質問する前に
自分でもちっと勉強しろって事だな。
0185 2005/09/25(日) 00:45:22
>>168 >>169
説明がわるかったけど、独自メッセージを処理したいというより
リアルタイム処理のためにGetMessageじゃなくてPeekMessageをつかったメッセージループとそのループ中に関数呼び出しを挿入したいということだけど、やっぱり分かりにくいか。

>>170
private関数じゃどうにもならないね。
0186デフォルトの名無しさん2005/09/25(日) 02:00:47
Application->ProcessMessages()を使う
01871652005/09/25(日) 05:39:28
アク禁くらってて慌ててたため、番号が間違えてました。
>>166 >>167 >>168
失礼しました。そしてありがとう。

>>168 >>186
メインループは書き換えられないけど、時間のかかるループの中でこれを呼べばいいみたいですね。
どうもありがとうございました。
0188デフォルトの名無しさん2005/09/25(日) 08:49:05
>>185
タイマースレッド作ってSleepなりSetTimerなりでループ回してやれば?
0189デフォルトの名無しさん2005/09/25(日) 12:26:41
メッセージをフックする

ここではAPIを使用して自ウインドウへのメッセージ(WM_MOVE、WM_SIZE、WM_CLOSE)をフックする方法を説明します。このメッセージフックの方法は結構使えるので知らない人は覚えておきましょう。

■使用するAPI関数
SetWindowLong(ウインドウに関する情報を設定する)
CallWindowProc(Windowsメッセージをデフォルトのウインドウ プロシージャに渡す)

■メッセージ 
WM_MOVE(ウインドウが移動した時に送られる)
WM_CLOSE(ウインドウを終了しろと言われた時に送られる)
WM_SIZE(ウインドウのサイズが変更した時に送られる)
  
01901652005/09/25(日) 12:28:11
>>188
うん、その方法もあるね。
たまたま見たプログラムがメッセージループをいじくるやつだから、Builderだとどうなるかと思ったんです。
0191デフォルトの名無しさん2005/09/25(日) 15:24:55
コピペ荒らしにマジレスしちゃうが
>>189
WndProcオーバーライドしろと
0192デフォルトの名無しさん2005/09/25(日) 17:26:37
Trapping Windows Messages
http://thecoadletter.com/article/0,1410,17819,00.html

if (msg == WM_VSCROLL)
ShowMessage("The vertical scrollbar is scrolling!"); //ここでカーソルが固まる

カーソルが固まるのを防ぐ方法がわかりません。
0193デフォルトの名無しさん2005/09/25(日) 17:27:28
>>192
休まずかき混ぜ続けるんだ
0194デフォルトの名無しさん2005/09/25(日) 18:15:13
>>192
そりゃ、スクロールイベントをShowMessageで止めてるんだからそうなるでしょ
0195デフォルトの名無しさん2005/09/25(日) 18:37:24
>>192
if (msg == WM_VSCROLL)
OutputDebugString("The vertical scrollbar is scrolling!")

これで解決
0196デフォルトの名無しさん2005/09/25(日) 20:49:46
別スレッドを作ってShowMessage(・∀・)
そして、ダイアログボックスの嵐の罠(´Д`)
0197デフォルトの名無しさん2005/09/25(日) 21:11:43
モーダルダイアログの意味が分かってないのね
0198デフォルトの名無しさん2005/09/26(月) 00:12:18
Setting Master Volume
http://www.geocities.com/fekinci37/vol.htm

0199デフォルトの名無しさん2005/09/26(月) 10:22:21
//#include <mmsystem.h>
//#include <windows.h>

//Setting Master Volume
//http://www.geocities.com/fekinci37/vol.htm

void __fastcall TForm1::Button1Click(TObject *Sender)
{

DWORD Vollevel;

Vollevel = GetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_DST_SPEAKERS));
//Vollevel = GetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT));
//Vollevel = GetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER));

if (Vollevel)
SetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_DST_SPEAKERS), 0);

else
SetMixerVolume(GetMixerControlID (MIXERLINE_COMPONENTTYPE_DST_SPEAKERS), 65535);

}
0200デフォルトの名無しさん2005/09/26(月) 13:46:27
WOutLine.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT;
//WOutLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS;
//WOutLine.dwComponentType = MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER;

http://www.gbuilder.times.lv/mixer.htm
http://www.gbuilder.times.lv/bcb_tips/MIXER_DEMO.rar

WinRAR
RAR/ZIPファイルの圧縮・解凍
http://www.vector.co.jp/soft/win95/util/se100730.html
0201デフォルトの名無しさん2005/09/26(月) 18:11:59
>>200

Form1->TrackBar1->Max = 65535;
■ このスレッドは過去ログ倉庫に格納されています