古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net
ここは古代に使われていたVisual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。
VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。
○ 質問者の心得
一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
二.VBScript、インストーラーなどはこのスレでOK。
三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
四.荒らしは相手しない。
○ 回答者の心得
一.答えられない質問は無駄に罵倒せずスルー。無理するな。
二.代用法を強制しない。
三.回答する上で必須ではない情報をむやみに聞き返さない。
四.荒らしは相手しない。
五.VB情報募集中。
六.回答は質問者が理解できるよう具体的に。
MSDN Online Japan ホーム
http://www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
http://msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
http://www.google.co.jp/
前スレ VBプログラマ質問スレ(Ver.6.0 まで) part64
http://peace.2ch.net/test/read.cgi/tech/1393069842/
※「まず自分で調べる」クセを身につけよう。 例えばポップアップメニューの項目の中で、使えない項目は
Enabled=Falseにすると、エンボス表示になって、これは使えない項目だと瞬時に分かったのに
今時のWindowsはタブレット対応のためか、滲んだフォントを使うので、エンボス表示が使えない
そこで文字色を灰色にしたり、背景色を変えたりの統一されていない仕様になって非常に分かりにくい
それはほんの一例だが、Windows開発の先人たちが改良を重ねて使いやすくしてきたものを
全否定する今時のWindowsは、GUIが子供が作ったようにバカげたものになっている
コントロールパネル関係なんか悲惨すぎる
場当たり的な思いつきの仕様が使われて、もう末期的だろう
開発チームを統括してる奴がいないようだ
しかしXP時代のよきGUIがVBランタイムとして残されていくのは救いだな 今やWindowsの売上はMS全体の売上の2〜3割しかないからあまり工数を割けないんだろうねぇ >>758
今のWindowsって今までに蓄積したものをぶっ壊した挙句、
UIが中途半端なキメラ状態になってしまってるんだよな
もう、モバイル完敗なんだから、サッサと諦めて
今までのデスクトップ路線に戻してほしいわ XPが完成形だよな。それ以降は劣化だよ。
進数計算とか空で出来ない雑魚文系なので、XPの関数電卓は未だに重宝する。 今のWindowsの電卓は最低だわ
フリーソフト以下だ
たぶん新人の勉強のために作らせたんだろうが
あんなものをよく上司がOK出すなと思う
アンドロイドスマホの電卓はセンス良い
さすがGoogle >>757
かも知れないね、、
まあ.NET Coreとか視野に有るならVB.NETよりC#にしとく方が良いからね 古いプログラムは余り手を付けずに延命できるならそれに越したことはない
表面化してこなかったバグを掘り起こしてしまいかねない
C#に移行なんて話は、どうせ元のソースの全てを理解してやろうとは思ってないだろ 「Internet Explorer 11」は2023年2月の
パッチで完全無効化
~Microsoftがアナウンス/
そろそろクラシックVBも引導渡されるかな。 そもそもプロプライエタリな開発ソフトなんて時代遅れだからっ!
これからはフリーなg++またはclang++やろ?
もちろんGUIはwxWidgetsッ!
Qt?・・・もう知らん AmazonのKindle for PCがQtのようだ edgeをdom操作出来るようになるまではie消すなよ。 VB6の様な実行即起動のP-CODEライクな開発環境はもう出ないのでしょうか? VBだけで出来ることなら簡単だけど、
OSの機能にアクセスしようとすると急に難しくなる VBAにはコントロール配列が無かったから複数の同じコントロールを
操作するのが面倒だった気がする VBってトライ&エラーがやりやすいから
やっつけ的な糞コードができやすいというのはあるかも・・・ 難しいかどうかを気にするのって
やらない言い訳を探しているように見えるな vbもvbaどちら様も難しいございますわよ。
だってプログラミングなんだもん。 Picture1をコンテナとして、複数のImageコントロールが乗っています
そのイメージを
Clipboard.Clear
Clipboard.SetData Picture1.Picture か Picture1.Image
でクリップボードに入らないかと思ったらImageは無視されてしまいます
Picture1に直接描かずに、Imageを乗せるのは、
Imageはドラッグで動かすものだからです
ウインドウ丸ごとキャプチャは、Picture1がウインドウより大きくて
スクロールしながら見るものだからダメです
全Image を BitBild でPicture1にコピーしてから
Clipboard.SetData するしかないでしょうか >>781
Picture1のAutoRdrawをTrueにしてもダメでしょうか? >>781
これでどうでしょうか?
フォーム上に Picture1 と Command1 を置きました。
Picture1 上には任意の Image を置いてください。
※ Picture1 の ScaleMode プロパティは、「3 - ピクセル」に設定してください。 Option Explicit
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hDC As Long) As Long
Private Const SRCCOPY = &HCC0020
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Const CF_BITMAP As Long = 2
Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal uFormat As Long, ByVal hData As Long) As Long Private Sub Command1_Click()
Dim hDC As Long
Dim hBitmap As Long
Dim hBitmapOld As Long
hDC = CreateCompatibleDC(Picture1.hDC)
hBitmap = CreateCompatibleBitmap(Picture1.hDC, Picture1.ScaleWidth, Picture1.ScaleHeight)
hBitmapOld = SelectObject(hDC, hBitmap)
BitBlt hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, SRCCOPY
If OpenClipboard(Me.hWnd) Then
If (EmptyClipboard()) Then
SetClipboardData CF_BITMAP, hBitmap
End If
CloseClipboard
End If
SelectObject hDC, hBitmapOld
'DeleteObject hBitmap
DeleteDC hDC
End Sub 全 Image を Picture1 に BitBlt する必要な無いみたいです。
VB6 の Clipboard オブジェクトを使用する場合は、StdPicture にする必要があるみたいですが、
hBitmap を StdPicture に変換するより Clipboard API を使用して hBitmap を渡す方が簡単だと思ったので
この様にしました。 ありがとうございます
ありがとうございます
ありがとうございます
できました!
複数のImageは透過Gifでして、重なり合っているので
ImageはたぶんBitbldできないから、一旦ワーク用のPictureBoxにコピーして
それをZオーダーの下層から順にPicture1にBitbldするのに
EnumWindowsとGetNextWindowを調べているところでした
でもPicture1はウインドウより大きいので
やはり見えない部分は内部では保持していないのでしょうね
そこはコードから少しずつスクロールしながらキャプって繋ぎ合わせようと思います
私の趣味に付き合って頂いた善意あるあなた様のご健康を願っていますので一言
「ワクチンは絶対に打ってはなりません」
これから世界は大混乱の終末の様相となり大勢の人々が無くなります
もし自由な時間がおありでしたら海外情報を紹介しているサイトをご覧になることをお勧めします オレはワクチン打つたびに副作用が強くなっていったから3回で止めたわ
人によっては1回目で強烈な副作用に襲われたらしいが・・・ マイクロソフトもWindowsアプリケーションの開発手段のひとつを提供しただけで、VB6.0はもともと本流ではない。 それなのに予想以上に人気が出てしまって(ソフトに掛けるお金や時間もなく)
切るに切れずに今に至るのでした
簡易的なものはDelphiに任せてどんと構えていれば良かったのかもしれないな でもVB4〜6の出来は素晴らしい
Windows本体やエクセルなんかより頑張ったと思う
文句の付け所がほとんど無い
思うに、MSはある時点で突然スタッフが劣化し
その前に終了したVBは良く見えると ホントかウソか分からんが実は日本人が裏で頑張ってた説もあるんだよな
ある日突然日本人に触らせなくなってから劣化して逝ったとか・・・
日本人はソフト開発向かないと言われているが
一部には特別優秀な人が居るんだなぁ MSIMEがうんこになったのは開発拠点を中国に移したせいだと聞いたな 日本から富士通やらNECやらがWindows開発部隊をMSに送り込んでいたのは事実
当時FM-TOWNSを持っていて、富士通系のパソコン雑誌でそういう記事が紹介されてた
てっきりWindowsの日本語化、2バイト文字対応をしてるのかと思ってたが
Windowsの核の部分から日本人技術者が担当してたと後から聞いた
すると松下が加勢した日本のOSであるTRONと、Windowsの戦いは
ある意味日本人同士の戦いだったのかも知れんね
戦いというほどではなかったのかも知れないが
ゲイツや孫一味によるJAL123便撃墜で終止符が打たれたから
アメリカの方では完全に戦いになってた
アメリカはスーパー301条を発動したからね
ペンタゴンまでTRONには国防上の大問題だとイキってたし
日本人は本当に優秀だよ
JAL撃墜のときの中曽根、そして小泉・竹中による日本潰しが始まった
こいつら日本人じゃないんだ
海外の調査でも、日本をトップに、香港など東アジア勢が知能指数が高いことが判っている
8ビットCPUの、ザイログZ80やインテル8080は日本人の嶋さんの設計で
嶋さんはインテルに引き抜かれた
カナダで製造された世界初の量子コンピューターの原理は日本人の発案
人工知能でブレイクスルーとなったディープ・ラーニングも日本人の発案
しかし日本には白人の言う通りに動く、いわば日本人の足かせとなっている民族がいる
政治家なんか全員そうだ そしてWindows安全神話が始まった
(実際は、アメリカに情報抜かれまくってたりして ビルド実行してもエラーもおきずEXEも吐き出されないのはどうやって原因追及すれば
突然VB6やることになってやばいです VB6の寿命半端ねぇっす
どうせならWindowsと共に生涯現役で・・・ 同じ機能、同じ性能のアプリを作れるなら
簡単に早く作れる方がいいに決まっているからね Windows10上のVBアプリで
テキストボックスに入力していると
そのうち漢字入力ができなくなる問題が放置されている
もう修正する気は無いのだろう
たぶんWindows11上でも同じなんでしょ?
VBアプリを再起動すれば復活するのだけど
何かコードを書いて、漢字モードのリセット的なことはできないでしょうか
つまり、漢字入力できなくなったら、
それ用のコードを仕込んだボタンをポチッと押すだけで
再び漢字入力できるような・・・ VB6.0なんてマイクロソフトがもう捨てろと言っているのにな マイクロソフトのライバルはマイクロソフトなのである!
つまり、VB6の様な手軽に開発出来るソフトを作ってしまったのがいけなかったんや
VBが無ければみんな泣きながらVC++使ってたろうから、多分.NETが救世主に見えたんじゃね? >>806
C++も無かった時代を知らないにわかですか?