DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomalフォントに登録されていない文字の検出(1) | Nomaloledbでdatatableを取得するときにエラーになる(1) | NomalDataGridViewの複数行選択で歯抜け選択を無効にしたい(2) | Nomal証券会社へのログイン(1) | Nomalユーザーフォームに埋め込んだAutoCADの変化を捉える(0) | Nomalシステムドライブ以外へのページング設定が反映されない(5) | Nomalブラウザでコピーした透過PNGを貼り付けたい(4) | Nomalforeachでループ回数を取得(2) | Nomalbitmapが保存できない(2) | Nomal特定ピクセルで画像を読み込みたい(2) | NomalDataGridViewでAlt+Enterで改行したい(2) | Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | Nomal画面遷移(モーダルとモードレス)(2) | Nomal兆億万表記の文字列を数値に変換できる?(3) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | NomalLinqにおける明示的型指定の方法(3) | Nomal2つのradの数値から1つの角度を求めるコードを改善できますか?(C++)(2) | Nomalコンソールアプリで、WebView2の利用(2) | NomalEntity Frameworkは、使えるか?(2) | Nomalデータベースからのテーブル名一覧の効率的な取得方法(3) | NomalC#のlong型でオーバーフローになる(2) | Nomal正規表現のパターン表記方法(2) | NomalWebView2によるスクレ―ピング(4) | Nomalこういた物を作れますか?(2) | Nomalツールボックスにtableadapterが表示されない(1) | NomalC# Chart X軸上のグラフ表示(3) | NomalVB.NETでBluetoothデバイスの電池残量を取得する方法(3) | Nomalクリスタルレポート 明細部のサブレポート(0) | Nomal重なったPictureBox同士を透過する方法(7) | NomalWindowsフォームデザイナについて(3) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでExcelファイル操作(7) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalVB2022でクリスタルレポートが開けない(2) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | NomalDrawstringでの透過文字作成(3) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalSpinWait()を使う理由(2) | Nomalantecedentってなんですか?(2) | Nomalワンタイムパスワードのサイトに自動ログインしてアクセストークンを得る(3) | Nomalstyle.displayだと効率悪いから違うやり方をしたいです。(5) | Nomalテーブルを順番通りに直すプログラムを外部で読み込めるようにしたいです。(4) | NomalJSONの複雑な入れ子内部の値を取りたい。(3) | Nomalグリッド表示レコードをJSONに変換(5) | Nomalシステム時計の設定(3) | NomalSeleniumで開いているページのTableを編集したい(5) | Nomalソケット通信入門 ひらがな(4) | NomalVisual Basicでエラーが出る(3) | Nomalインストーラにて、ローミングフォルダにファイルを配置したい(0) | NomalRGB値の所得(2) | NomalVB.net からAccessDBへの接続(2) | Nomal時間変数(文字列)の扱い(4) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalPictureBoxの画像を連続保存(11) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | Nomalラジオボタンの一括設定(7) | Nomalクリックイベントでexeを作成できるか(2) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | Nomalアセンブリ情報が載らない(1) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalc#で日付型の定義の仕方で質問があります。(2) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalLabelで文字単位の背景色(7) | NomalLableのカラー色を文字変数から変更したい(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalTEXTBOXのプロパティを文字列に(7) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalDataGridViewの特定セルにボタンを配置する方法(5) |



■記事リスト / ▼下のスレッド
■35204 / 親記事)  タッチキーボードでIMEを自動で切替えたい
□投稿者/ 炎の妖精さん 一般人(9回)-(2022/10/27(Thu) 15:59:00)
  • アイコン環境/言語:[Windows10(64bit)_VB.NET] 
    分類:[.NET] 

    お世話になっております。

    此度はタッチキーボードを使用するにあたり、
    項目によって
    「半角(ImeMode:Off)」と「ひらがな(ImeMode:Hiragana)」に分けたいのですが、
    タッチキーボードではどのように処理すればよろしいのでしょうか?

    使用しているタブレットのタッチキーボードでは「ひらがな」として開くようになり、
    英数字で入れたい項目では毎度[半角/全角]キーを押下しなければいけません。
    その為、項目によって[半角][ひらがな]を切替えられるのかをご教授頂きたいです。

    ※タッチスクリーン
    c:\program files\common files\microsoft shared\ink\tabtip.exe
違反を報告
引用返信

▽[全レス6件(ResNo.2-6 表示)]
■35206 / ResNo.2)  Re[2]: タッチキーボードでIMEを自動で切替えたい
□投稿者/ 魔界の仮面弁士 大御所(1469回)-(2022/10/27(Thu) 17:38:06)
  • アイコンNo35205に追記(魔界の仮面弁士の記事)
    > 第二引数には System.Windows.Input 名前空間(参照設定:PresentationCore) の
    > InputScopeNameValue 列挙型を指定します。

    ただし InputScopeNameValue の定義範囲は -4〜47 の範囲に限られています。

    その範囲外で指定する場合は、Windows SDK を参照して、
    該当する InputScope の定数値を直接指定することになります。
    今回それが必要になるかは別として。


    ※50(IS_SEARCH) 以降は Windows 8 以降が対象
    ※52(IS_SEARCH_INCREMENTAL) 以降は Windows 10 以降が対象

     IS_ENUMSTRING = -5
     IS_XML = -4
      :
     IS_DEFAULT = 0
    IS_URL = 1
      :
     IS_HANJA = 47
     IS_HANGUL_HALFWIDTH = 48
      :
     IS_FORMULA_NUMBER = 67
     IS_CHAT_WITHOUT_EMOJI = 68

    https://learn.microsoft.com/ja-jp/windows/win32/api/inputscope/ne-inputscope-inputscope
    https://learn.microsoft.com/ja-jp/dotnet/api/system.windows.input.inputscopenamevalue?view=netframework-4.8
違反を報告
引用返信
■35208 / ResNo.3)  Re[3]: タッチキーボードでIMEを自動で切替えたい
□投稿者/ 炎の妖精さん 一般人(11回)-(2022/10/28(Fri) 10:47:52)
  • アイコン魔界の仮面弁士様
    回答、ありがとうございます。

    確認させて頂きましたが、
    開発環境端末では目的通りの動作になりましたが、
    タブレット端末では「ひらがな」のままでした。

    第2引数のパラメータを変更して
    随時確認するしかないでしょうか?
    ※現在、指定している第2引数パラメータ
     AlphanumericHalfWidth(40):半角英数字のテキスト入力パターン
違反を報告
引用返信
■35209 / ResNo.4)  Re[4]: タッチキーボードでIMEを自動で切替えたい
□投稿者/ 魔界の仮面弁士 大御所(1470回)-(2022/10/28(Fri) 13:28:50)
  • アイコンNo35208に返信(炎の妖精さんさんの記事)
    > 開発環境端末では目的通りの動作になりましたが、
    > タブレット端末では「ひらがな」のままでした。

    入力項目ごとに、入力モードを動的に設定したいのですよね。

    OS 設定で [キーボードの詳細設定] を開いて、
    [アプリ ウィンドウごとに異なる入力方式を設定する]
    の設定が、両端末で同じになっているか確認してみてください。
違反を報告
引用返信
■35210 / ResNo.5)  Re[5]: タッチキーボードでIMEを自動で切替えたい
□投稿者/ 魔界の仮面弁士 大御所(1471回)-(2022/10/28(Fri) 13:39:18)
  • アイコンNo35209に追記(魔界の仮面弁士の記事)
    > [アプリ ウィンドウごとに異なる入力方式を設定する]

    場所としてはこのあたりです。この項目の On/Off で動作が変わりますか?
    https://iimemojp.com/inputcontrol/


    それ以外で関係しそうなところと言えば、Microsoft IME の設定画面にある
    「以前のバージョンの Microsoft IME を使う」の設定ぐらいかな…?
違反を報告
引用返信
■35211 / ResNo.6)  Re[6]: タッチキーボードでIMEを自動で切替えたい
□投稿者/ 炎の妖精さん 一般人(12回)-(2022/10/28(Fri) 14:02:06)
  • アイコン魔界の仮面弁士様
    回答、そしてご助言いただきありがとうございます。

    >OS 設定で [キーボードの詳細設定] を開いて、
    >[アプリ ウィンドウごとに異なる入力方式を設定する]
    >の設定が、両端末で同じになっているか確認してみてください。
    変更しましたが、変わらず[ひらがな]が表示されました。


    ※補足
     タッチキーボードのレイアウトを"通常のレイアウト"にしたことで
     項目によって[半角][ひらがな]を分けることが出来て、解決しました。
     今までは"標準キーボード"を選択していましたが、このレイアウトではどの項目に対しても[ひらがな]となっていました。
     目的が果たせましたので解決とさせていただきますm(_ _)m

    https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=4710-9922

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-6]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35196 / 親記事)  VSTOによるエクセルアドインのインストーラーでのアップデート
□投稿者/ TK 一般人(1回)-(2022/10/24(Mon) 23:04:58)
  • アイコン環境/言語:[Windows10 vb.net visual studio 2022 community] 
    分類:[インストーラ] 

    エクセルアドインを作ってインストーラーもセットアッププロジェクトで作成しインストールすると
    エクセルのCOMアドインの一覧で有効になりアドインタブにボタンも出来て、アドインとして機能
    することが確認できました。
    アンインストールもコントロールパネル・プログラムと機能のところに登録されている一覧からアン
    インストールも出来たので、さぁ既存のVBAのアドインから移植して行こう!と喜んでいたのですが
    内容を変更したものを反映したインストーラーから上書きで更新するのを試すとプログラムと機能の
    アプリ一覧上はバージョン番号が上がっててアップデートできてるように見えるのですがExcelアド
    インを実行すると前のバージョンのままという状態になります。
    プログラムと機能からアンインストールしてからその新バージョンのインストーラーで再インストー
    ルするとちゃんと新バージョンとしてエクセルアドインが動作するのでインストーラーの中身のプロ
    グラム自体は新バージョンになっていると思われます。
    ユーザーに配布時にわざわざ事前にアンインストールさせたくないので上書きインストールを成功さ
    せたいのですが、どこに問題があるのか、そもそも不可能なのかネットでいろいろと検索してみたの
    ですが見つけられませんでした。
    そもそも出来ないから素直にアンインストール前提でアップデートしなさいとか、ここを確認してみ
    たら?等、何かありましたらアドバイス下さい。よろしくお願いします。
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■35203 / ResNo.1)  Re[1]: VSTOによるエクセルアドインのインストーラーでのアップデート
□投稿者/ TK 一般人(2回)-(2022/10/26(Wed) 21:42:19)
  • アイコン一応解決しました。
    セットアッププロジェクトのVersionしか変更してなかったのが原因のようでした。メインプロジェクト側のアセンブリ情報のアセンブリバージョン、ファイルバージョンも合わせて変更するようにするとちゃんとプログラムも更新されるようになりました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35187 / 親記事)  MP4動画を再生する方法について
□投稿者/ ま〜 一般人(11回)-(2022/10/21(Fri) 14:45:25)
  • アイコン環境/言語:[Basic VS2022] 
    分類:[.NET] 

    こんにちは、動画再生したいと思ってネットで色々調べて試行錯誤しましたが上手く再生できません。エラーも何も起こらないです。
    @とAの2種類の方法で試してみました。どこか間違ってますでしょうか?

    '---@ーー
    Private Sub Button1_Click・・・・・
    AxWindowsMediaPlayer1.URL = "ビデオ\test.mp4" '
    AxWindowsMediaPlayer1.currentPlaylist = AxWindowsMediaPlayer1.mediaCollection.getByName("ビデオ¥test.mp4")
    AxWindowsMediaPlayer1.settings.autoStart = True
    AxWindowsMediaPlayer1.Ctlcontrols.play()
    End Sub

    '----A ------
    Dim WithEvents Player As WMPLib.WindowsMediaPlayer

    Private Sub Button2_Click・・・・・・
    Player = New WMPLib.WindowsMediaPlayer
    Player.URL = "ビデオ\test.mp4"
    Player.controls.play()
    End Sub

    よろしくお願いします。
違反を報告
引用返信

▽[全レス5件(ResNo.1-5 表示)]
■35191 / ResNo.1)  Re[1]: MP4動画を再生する方法について
□投稿者/ Hongliang 大御所(634回)-(2022/10/21(Fri) 20:11:27)
  • アイコン念のための確認ですが、
    > "ビデオ¥test.mp4"
    これはフルパスで指定していますか?
    そうでなければ、Explorerで対象のファイルをShiftキーを押しながら右クリックして「パスのコピー」を行い、それを設定してみてください。

    一応、私の環境で以下の手順で再生できることを確認しました
    1. Visual Studioで新しいプロジェクトを作成 .NET フォームアプリケーション(.NET Framework)
    2. ツールボックスを右クリックして「アイテムの選択」から、COMコンポーネントのWindows Media Playerにチェックを入れてOK
    3. ツールボックスに追加されたWindows Media PlayerとButtonをFormに貼り付ける
    4. ButtonをダブルクリックしてClickイベントを追加し、Sub内に以下のコードを入力

    Me.AxWindowsMediaPlayer1.URL = "パスのコピーでコピーした動画ファイルのフルパス"
    ' 既定でAxWindowsMediaPlayer.settings.autoStartがTrueなので明示的にplay()する必要はないはず
    ' Me.AxWindowsMediaPlayer1.Ctlcontrols.play()

    5. F5でデバッグ開始し、ボタンをクリックする
違反を報告
引用返信
■35192 / ResNo.2)  Re[2]: MP4動画を再生する方法について
□投稿者/ Hongliang 大御所(635回)-(2022/10/21(Fri) 20:20:42)
  • アイコンなお、プロジェクトの作成によく似た名前の「Windows フォームアプリ」というのがありますが、これは.NET 5以降向けのアプリケーションを作成するテンプレートです。
    一方「Windows フォームアプリケーション(.NET Framework)」は.NET Framework 4.8まで向けのテンプレートとなります。

    「フォームアプリ」の方は、デザイナが十分に成熟していないなどWinFormsアプリケーションを作るのにはあまりいい話を聞かないので、WinFormsを作る場合、現状では.NET Frameworkの方で作った方がよいかもしれません。
違反を報告
引用返信
■35197 / ResNo.3)  Re[2]: MP4動画を再生する方法について
□投稿者/ ま〜 一般人(13回)-(2022/10/25(Tue) 10:39:55)
  • アイコンNo35191に返信(Hongliangさんの記事)
    > 念のための確認ですが、
    >>"ビデオ¥test.mp4"
    > これはフルパスで指定していますか?
    エクスプローラに"ビデオ¥test.mp4"を入れると再生出来ていたので安心していました。
    パス名やファイル名が間違っていてもエラーにならないようです
    フルパスで解決しました。

    ありがとうございます。


解決み!
違反を報告
引用返信
■35198 / ResNo.4)  Re[3]: MP4動画を再生する方法について
□投稿者/ ま〜 一般人(14回)-(2022/10/25(Tue) 10:59:20)
  • アイコンNo35192に返信(Hongliangさんの記事)

    > 「フォームアプリ」の方は、デザイナが十分に成熟していないなどWinFormsアプリケーションを作るのにはあまりいい話を聞かないので、WinFormsを作る場合、現状では.NET Frameworkの方で作った方がよいかもしれません。

    これって 張り付けた画像の様な選択ですよね。
    理解しきって無いのですが何を基準に選べば宜しいでしょうか?
390×127 => 250×81
イメージ
1666663160.jpg
/17KB
違反を報告
引用返信
■35201 / ResNo.5)  Re[4]: MP4動画を再生する方法について
□投稿者/ ま〜 一般人(15回)-(2022/10/26(Wed) 14:57:18)
  • アイコン取りあえずクローズします。ありがとうございました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-5]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35185 / 親記事)  VB.NetでVB6.0と同じFontを指定しても同様に印刷されない
□投稿者/ ゆりりん 一般人(1回)-(2022/10/21(Fri) 11:45:23)
  • アイコン環境/言語:[環境(Windows10 64bit)、使用言語(VB.net2017)、.NET Framework 4.6.1 ] 
    分類:[.NET] 

    いつも参照させていただいています。

    現在、VB6.0で書かれた印刷プログラムをVB.Netに移行しています。
    その中で、VB6.0と全く同じ座標とFont種類・サイズを指定しても、
    VB.Netで印刷すると、少し右にずれてしまうし、Fontのサイズが微妙に違ってしまいます。
    Fontの高さは同じようなのですが、文字と文字の隙間が微妙に違うようで、長い文字列を印刷すると、印刷された文字の長さがVB.Netの方が長くなってしまうのです。
    座標系はどちらも、ミリメートルを指定しています。
    VB.Netで印刷された文字列の前に空白が付くことは、下記のサイトを参照して分かったので、ずれる分を引いた座標を指定したら、右にずれる件は解決したのですが、同じFontを指定しても違ってしまう件が解決できません。
    同じプリンタとプリンタドライバを使用しているのに、どうしてVB6.0とVB.Netで違ってしまうのか、まったくわかりません。

    ・使用しているプリンタ ラベルプリンタ SATO CL4NX-J 609dpi
    ・プリンタ解像度 609dpi 24dot/mm

    ・参考にしたサイト
    VB.netで文字を正確な位置に描く。
    https://penguinlab.jp/blog/post/117

    ※VB6.0のサンプル

    Printer.ScaleMode = 6
    Printer.FontName = "MS ゴシック"
    Printer.FontSize = 9
    Printer.CurrentX = 12.5
    Printer.CurrentY = 30.7
    Printer.Print "IN-OUT<AB>CD EFG-HIJK-LMN A<10>"

    ※VB.Netのサンプル

    e.Graphics.PageUnit = GraphicsUnit.Millimeter
    Dim f As New Font("MS ゴシック", 9, FontStyle.Regular)
    e.Graphics.DrawString("IN-OUT<AB>CD EFG-HIJK-LMN A<10>", f, Brushes.Black, 12.5, 30.7)

    こんな感じです。


    どなたかわかる方、どうかアドバイスをお願いいたします。

違反を報告
引用返信

▽[全レス9件(ResNo.5-9 表示)]
■35202 / ResNo.5)  Re[5]: VB.NetでVB6.0と同じFontを指定しても同様に印刷されない
□投稿者/ 魔界の仮面弁士 大御所(1467回)-(2022/10/26(Wed) 18:29:47)
  • アイコンNo35200に返信(ゆりりんさんの記事)
    > 想定していたよりかなり小さく印刷されてしまい、
    物理単位と論理単位の違いでは無いでしょうか。

    恐らく、最初の回答で述べた「TextRenderer.DrawText」を使った場合と
    同じぐらいのサイズで描画されていませんか?

    GDI+ 側の PageUnit プロパティを操作しても、
    GDI 側のデバイスコンテキストには影響を与えないと思います。


    > 座標は合っているようなのですが、想定していたよりかなり小さく印刷されてしまい
    単位系が未設定の場合、初期値として
    GDI+ 側(PageUnit プロパティ)は Display(1) を返し、
    GDI 側(GetMapMode API)は MM_TEXT(1) を返すようです。

    Sub SetFont でフォントを生成する際に、
    MM_TEXT から MM_LOMETRIC あるいは MM_HIMETRIC で
    生成するようにしてみては如何でしょうか。


    > Private Sub pd_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
    >  Dim mFont As IntPtr
    ここで宣言されたローカル変数の mFont と

    > Private Sub SetFont(ByVal control As IntPtr, ByVal fontFamily As String, ByVal fontSize As Integer)
    >  mFont = CreateFont(fontSize * -1, 0, 0, 0, 400, 0, 0, 0, 1, 0, 0, 0, 0, fontFamily)
    ここで利用されているフィールド変数の mFont は
    それぞれ別の変数ですが、大丈夫ですか?
違反を報告
引用返信
■35207 / ResNo.6)  Re[6]: VB.NetでVB6.0と同じFontを指定しても同様に印刷されない
□投稿者/ ゆりりん 一般人(4回)-(2022/10/28(Fri) 10:38:17)
  • アイコンいつもありがとうございます。

    > 物理単位と論理単位の違いでは無いでしょうか。
    >
    > GDI+ 側の PageUnit プロパティを操作しても、
    > GDI 側のデバイスコンテキストには影響を与えないと思います。

     そういうことだったのですね。

    > Sub SetFont でフォントを生成する際に、
    > MM_TEXT から MM_LOMETRIC あるいは MM_HIMETRIC で
    > 生成するようにしてみては如何でしょうか。

     早速、やってみようと思います。
     
    >> Dim mFont As IntPtr
    > ここで宣言されたローカル変数の mFont と
    >
    >> mFont = CreateFont(fontSize * -1, 0, 0, 0, 400, 0, 0, 0, 1, 0, 0, 0, 0, fontFamily)
    > ここで利用されているフィールド変数の mFont は
    > それぞれ別の変数ですが、大丈夫ですか?

     すみません。
     ここに載せる時に、間違えました。
     実際には、論理フォントの作成の後に入っています。
     お気づきいただき、ありがとうございました。
違反を報告
引用返信
■35212 / ResNo.7)  Re[6]: VB.NetでVB6.0と同じFontを指定しても同様に印刷されない
□投稿者/ ゆりりん 一般人(5回)-(2022/10/28(Fri) 16:49:02)
  • アイコン> Sub SetFont でフォントを生成する際に、
    > MM_TEXT から MM_LOMETRIC あるいは MM_HIMETRIC で
    > 生成するようにしてみては如何でしょうか。


    <System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")>
    Friend Shared Function SetMapMode(ByVal hdc As Integer, ByVal fnMapMode As Integer) As Integer
    End Function

     を追加しまして、

    Private Sub SetFont(ByVal control As IntPtr, ByVal fontFamily As String, ByVal fontSize As Integer)

    Call SetMapMode(control, 2) 'MM_LOMETRIC
    mFont = CreateFont(fontSize * -1, 0, 0, 0, 400, 0, 0, 0, 1, 0, 0, 0, 0, fontFamily)
    mFontOld = SelectObject(control, mFont)

    End Sub

     このように書いてみたのですが、
     何も印刷されなくなってしまいました。
     SetMapMode の使い方が、間違っているのでしょうか。

     度々申し訳ございません。
     ご教授いただければと思います。
     どうぞよろしくお願いいたします。


違反を報告
引用返信
■35214 / ResNo.8)  Re[7]: VB.NetでVB6.0と同じFontを指定しても同様に印刷されない
□投稿者/ 魔界の仮面弁士 大御所(1473回)-(2022/10/28(Fri) 21:29:20)
  • アイコン
    No35212に返信(ゆりりんさんの記事)
    > 何も印刷されなくなってしまいました。
    
    『フォントサイズ』の指定、および、『描画位置の座標』は正しいですか?
    
    MM_TEXT から MM_LOMETRIC に変更したのであれば、フォントサイズだけでは無く
    描画座標も MM_LOMETRIC 単位系で計算しなおす必要があります。
    
    
    描画位置を変更したくない場合は、GetMapMode と SetMapMode をペアで使うようにして、
    フォント作成後、描画時に座標系を元に戻してみてください。先の私の回答では、フォントを
    「MM_LOMETRIC あるいは MM_HIMETRIC で生成する」とは書きましたが、
    「MM_LOMETRIC あるいは MM_HIMETRIC で描画する」とは書いていません。
    
    
    MapMode は 1〜8 の 8 種類あります。指定するモードによっては、
    単位だけでなく軸の向きも変化していることに注意してください。
    
     (A) X 座標が右に、Y 座標が上に向かって増加していくもの
     (B) X 座標が右に、Y 座標が下に向かって増加していくもの
     (C) SetWindowExtEx() / SetViewportExtEx() で単位、向き、スケーリングを指定するもの
     http://www.kumei.ne.jp/c_lang/sdk/sdk_55.htm
     http://yamatyuu.net/computer/program/sdk/gdi/mapmode/index.html
    
    ---
    
    (A) 右向き、上向きな MapMode
     1 … MM_TEXT。1 デバイスピクセル単位の物理座標系。
     6 … MM_TWIPS。0.05ポイント単位(1/1440インチ単位)の論理座標系。
    
    (B) 右向き、下向きな MapMode
     2 … MM_LOMETRIC。0.1 ミリ単位の論理座標系。
     3 … MM_HIMETRIC。0.01 ミリ単位の論理座標系。
     4 … MM_LOENGLISH。0.01 インチ単位の論理座標系。
     5 … MM_HIENGLISH。0.001 インチ単位の論理座標系。
    
    (C) 単位、向き、スケーリングを任意に指定できる MapMode
     7 … MM_ISOTROPIC。異方性ユーザー定義単位系。任意の単位、向き、スケーリングを持つ。
     8 … MM_ANISOTROPIC。等方性ユーザー定義単位系。X 軸と Y 軸の 1 単位が等しい。

違反を報告
引用返信
■35215 / ResNo.9)  Re[8]: VB.NetでVB6.0と同じFontを指定しても同様に印刷されない
□投稿者/ ゆりりん 一般人(6回)-(2022/11/02(Wed) 11:23:32)
  • アイコン> 描画位置を変更したくない場合は、GetMapMode と SetMapMode をペアで使うようにして、
    > フォント作成後、描画時に座標系を元に戻してみてください。先の私の回答では、フォントを
    > 「MM_LOMETRIC あるいは MM_HIMETRIC で生成する」とは書きましたが、
    > 「MM_LOMETRIC あるいは MM_HIMETRIC で描画する」とは書いていません。
    >
    そういうことだったのですね。
    よくわかっていませんでした。

    『描画位置の座標』はピクセルで計算していたので、
    MM_TEXTの指定にしたら、きちんと印刷されるようになりました。

    今までどうもありがとうございました。


解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-9]



■記事リスト / ▲上のスレッド
■35177 / 親記事)  Labelで文字単位の背景色
□投稿者/ ま〜 一般人(9回)-(2022/10/19(Wed) 13:09:57)
  • アイコン環境/言語:[basic] 
    分類:[.NET] 

    こんいちは
    Labelで文字単位の反転文字をしたいのですが(特定の文字だけ協調したい)
    こんな事はRichTextで無いと無理なのでしょうか?

違反を報告
引用返信

▽[全レス7件(ResNo.3-7 表示)]
■35181 / ResNo.3)  Re[2]: Labelで文字単位の背景色
□投稿者/ 魔界の仮面弁士 大御所(1463回)-(2022/10/19(Wed) 17:10:24)
  • アイコンNo35180に追記(魔界の仮面弁士の記事)
    > TextBox や RichTextBox で代用するとかですかね。
    > ただしこの場合、キーボードやマウス操作で選択状態を変更できてしまいます。
    > かといって Enabled = False だと、淡色表示になってしまうが悩ましい所。

    Enabled は True のままにしておいて、
    Enter イベントか GotFocus イベントで、
    非アクティブにしてしまえば、何とかなるかな?

    Private Sub TextBox1_GotFocus(sender As Object, e As EventArgs) Handles TextBox1.GotFocus
      ActiveControl = Nothing
    End Sub


    本当は、そもそもフォーカスを受け取らないようにするか、
    あるいはせめて、前回フォーカスのあったコントロールに戻す方が
    望ましいのですけれど…ひとまず手抜き実装ということで。
違反を報告
引用返信
■35182 / ResNo.4)  Re[3]: Labelで文字単位の背景色
□投稿者/ KOZ 一般人(4回)-(2022/10/20(Thu) 05:37:05)
  • アイコン
    No35181に返信(魔界の仮面弁士さんの記事)
    > 本当は、そもそもフォーカスを受け取らないようにするか、
    > あるいはせめて、前回フォーカスのあったコントロールに戻す方が
    > 望ましいのですけれど…ひとまず手抜き実装ということで。
    
    RichTextBox を非表示にして親に描画するとか。
    
    Public Class Form1
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            RichTextBox1.Visible = False
            RichTextBox1.Text = "こんにちは!"
            RichTextBox1.SelectionStart = 5
            RichTextBox1.SelectionLength = 1
            RichTextBox1.SelectionColor = Color.White
            RichTextBox1.SelectionBackColor = Color.Red
        End Sub
    
        Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
            Using bmp As New Bitmap(RichTextBox1.Width, RichTextBox1.Height)
                RichTextBox1.DrawToBitmap(bmp, New Rectangle(New Point(0, 0), RichTextBox1.Size))
                e.Graphics.DrawImage(bmp, RichTextBox1.Location)
            End Using
        End Sub
    
    End Class
    

違反を報告
引用返信
■35183 / ResNo.5)  Re[4]: Labelで文字単位の背景色
□投稿者/ KOZ 一般人(5回)-(2022/10/20(Thu) 11:42:04)
  • アイコンNo35182に返信(KOZの記事)
    > RichTextBox を非表示にして親に描画するとか。

    https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/RichTextBox.cs,1804

    RichTextBox の DrawToBitmap は機能しなかったのを思い出しました。
    このコードは .NET Framework 4.7 以上だと動きますが 4.6.2 以下だと動きません。
    ま〜さんがお使いの環境によっては、この手は使えません。失礼しました。

違反を報告
引用返信
■35184 / ResNo.6)  Re[5]: Labelで文字単位の背景色
□投稿者/ KOZ 一般人(6回)-(2022/10/21(Fri) 08:15:12)
  • アイコンNo35183に返信(KOZさんの記事)
    > このコードは .NET Framework 4.7 以上だと動きますが 4.6.2 以下だと動きません。
    > ま〜さんがお使いの環境によっては、この手は使えません。失礼しました。

    .NET Framework 4.0 以降であれば、app.config をいじれば大丈夫のようです。

    https://lets-csharp.com/richtextbox-image/

違反を報告
引用返信
■35186 / ResNo.7)  Re[6]: Labelで文字単位の背景色
□投稿者/ ま〜 一般人(10回)-(2022/10/21(Fri) 14:04:58)
  • アイコン魔界さんKOZさんありがとうございます
    センター配置でFontサイズが変動するのでBOXだと入れ物が決まってしないつかいづらかっらので
    Labelだと枠がないのでLabelでなんとかならないかと思っていました
    教えて頂いた内容で解決しました。
    いつもありがとうございます

解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-7]






Mode/  Pass/


- Child Tree -