Print

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
脱兎

Print

#1 投稿記事 by 脱兎 »

エディットボックス内のテキストを印刷するにはどうすればいいですか。

できればコードを教えてください。

ビギナーですみません。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

印刷の方法は分りませんがエディットボックス内の文字列を取得する方法なら分ります。 僕からも頼みます。印刷の方法誰か教えてください。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ぶりっち

konishiさんへ

#3 投稿記事 by ぶりっち »

ありがとうございました。

あの、文字数を表示するコードでお願いがあるのですが、

MainWndのEditBox1の文字数を別のウインドウ(例 ABC)のボタンを押すとABCのEditBox1に文字数を表示するという面倒なものです。

konishiさんは今僕にとってい一番必要としている方です。

お願いです。信じています。

ソースコードをください。


●ABCとは別のウインドウのWindowハンドルのことです。



余計なことかも知れませんが、僕は3日前からCをはじめました。

Cは開発ソフトをそろえるにも高くて小遣い範囲では手が出せません。
しかし、無料でJapa、ビジュアルC、C++、C♯、インストーラー、を
開発できるソフトを見つけました。

ソフト名は、SharpDevelop です。

この情報と引き換えに教えていただければ幸いです。
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

#4 投稿記事 by Sinryow »

現在のBBSに変更されてからは印刷に関する質問はまだ出ていませんが
その前に使われていたBBSの頃には,印刷関連の質問が多数出ていました。

その当時の過去ログはここからダウンロードできます。ここから「印刷」
とかのキーワードで検索すると方法が見つかるかもしれません。(自分は
試していないのでわかりませんが)
http://dbp.cool.ne.jp/patio/patio.cgi?mode=view&no=138
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
ノッチ
記事: 82
登録日時: 2005年6月01日(水) 23:27
お住まい: 北海道札幌市

#5 投稿記事 by ノッチ »

プリンター出力に関する質問が結構いっぱいあるので簡単なサンプルをのせます。
家にプリンターがないので実際に試してはいませんが流れとしては以下のようになります。
エラー処理等は省いています。

まずはMainWnd上にComboBoxとButtonとEditBoxを配置します。
起動するとComboBoxの中にプリンター名が列挙されます。
それを選択して、Buttonを押すとEditBoxに書かれている文字がプリントアウトされるはずです。 流れを簡単に説明すると、画面に描画したことある人にはわかりやすいと思いますが、
プリンターのDCを取得してそのDCにTextOutやFillRect、BitBlt等をする。
ただこれだけです。
たぶんうまくいかないと思うので、プリンターを持っててわかる人、フォローお願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

すると・・・

#6 投稿記事 by konisi »

A.exeのEditBox1内にあらかじめ何らかの文字列を投下
   ↓
B.exeのCommandButton1を押す
   ↓
B.exeのEditBox1に文字列を出力

といった感じでしょうか・・・
B.exeでA.exeのハンドルを100%正確に(ユーザー側の条件に影響されずに)入手するような関数はあるのかもしれませんが、分りません。
もしそれが分れば可能かもしれませんが?(ちなみに、ユーザーが作業を行っているウインドウのハンドルを取得する関数ならForegroundWindow()とかいう関数が在った様な気がしないでもないのですが・・・イグトランスさんかSinryowさんのどちらかを希望しますが、そこら辺のフォローを誰かお願いします。)
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ノッチ
記事: 82
登録日時: 2005年6月01日(水) 23:27
お住まい: 北海道札幌市

Re: すると・・・

#7 投稿記事 by ノッチ »

> B.exeでA.exeのハンドルを100%正確に(ユーザー側の条件に影響されずに)入手するような関数はあるのかもしれませんが、分りません。

上記のB.exeからA.exeのウィンドウハンドルを取得するのはウィンドウの
テキストが変更される場合、結構大変です。
(グローバルなメモリ領域にハンドルを格納したり、レジストリを使用したり等
もしくは、"notepad - 無題"のように必ず固定の文字列が入るなら簡単ですが)
ですのでウィンドウメッセージを登録する方が簡単(かもしれない)です。
まずは、

' TODO: この位置にグローバルな変数、構造体、定数、関数を定義します。
Dim WM_SENDHANDLE As Long

として、MainWnd_Createに

WM_SENDHANDLE=RegisterWindowMessage("MyOriginalMessage")

のようにしてA.exeでもB.exeでもメッセージを登録すると共通のメッセージが
作成されます。
(文字列は例で、上記の文字列は他のアプリケーションとかぶる可能性があるので
自分のハンドルネームを使用したりかぶらないようにして下さい)
これを使用して、B.exeからA.exeのハンドルを知りたい時に

PostMessage(HWND_BROADCAST,WM_SENDHANDLE,hMainWnd,0)

とするとすべてのウィンドウに対してWM_SENDHANDLEが送信されます。
A.exeでWM_SENDHANDLEを受信したら逆にA.exeから

PostMessage(wParam,WM_SENDHANDLE,hMainWnd,0)

のようにしてウィンドウハンドルを送信します。
今度はB.exeでWM_SENDHANDLEを受信した時、そのwParamがウィンドウハンドル
ですのでそれをグローバル変数に保存等して下さい。

これも試していませんが、理論上はできるはずなので試してみて下さい。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#8 投稿記事 by イグトランス »

ところでぶりっちさんの書き方ではもしかすると2つのウィンドウは実は同じEXEの中であるという可能性も考えられます。

#深読みしすぎですか?
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#9 投稿記事 by konisi »

>>イグトランス
> ところでぶりっちさんの書き方ではもしかすると2つのウィンドウは実は同じEXEの中であるという可能性も考えられます。


・・・確かにwwww^^;

それなら結構簡単なことになりますね。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
返信する