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

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

記事リスト ( )内の数字はレス数
Nomalbitmapが保存できない(2) | Nomal特定ピクセルで画像を読み込みたい(2) | NomalDataGridViewでAlt+Enterで改行したい(2) | Nomal全角シフト中にアクセスキーが効かない(5) | NomalDataAdapter.Updateで構文エラー(6) | Nomal抽象クラスで実装したクラスの情報を知る(3) | Nomal画面遷移(モーダルとモードレス)(2) | NomalProcessクラスからbatファイル実行後、KILLできない(2) | NomalGetDirectoriesでルートを指定するとエラーになる(3) | Nomal兆億万表記の文字列を数値に変換できる?(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でExcelファイル操作(7) | NomalVB.NETからcmdでpingを実行した時の結果(5) | Nomalvb.netでのExcelファイルそうさ(2) | Nomalキーボード+バーコードでキーボード入力を無効にしたい(6) | NomalVB2022でクリスタルレポートが開けない(2) | Nomalファイルとして配置したマニフェストを優先したい(2) | NomalTabPageの背景色(5) | NomalC#でJpeg圧縮のTiffファイルを作成したい(4) | Nomalエクセルのみ監視ができない(2) | NomalDataGridViewのVirtualModeを有効した場合の実装方法(4) | NomalExcelの数値 -> 日付みたいな関数?(2) | Nomaljumbo icon(256x256)が存在するか知る方法(6) | NomalDrawstringでの透過文字作成(3) | 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) | Nomal時間変数(文字列)の扱い(4) | NomalVB.net からAccessDBへの接続(2) | Nomal画像のスクロール(6) | Nomalタイマーの一括処理(6) | NomalTreeViewとDataGridViewのスクロールを同期(シンクロ)させたい(4) | NomalTreeViewの現在位置とDataGridViewの現在位置を合わせたい(7) | NomalPictureBoxの画像を連続保存(11) | NomalDataGridViewの特定セルにボタンを配置する方法(5) | Nomalフォームのリサイズ時にDataGridViewが再描画されない(4) | NomalテキストボックスのValidatingイベントよりも先に発生するボタン発生イベントは何でしょう?(2) | NomalPDFをフォーム上で表示させる方法につきまして(4) | NomalDataGridViewの行ヘッダーに行番号を表示した時のエラー(4) | Nomal継承元フォームで各フォームのボタン動作を検知したい(3) | Nomalラジオボタンの一括設定(7) | NomalWindowsエクスプローラからのドラッグ&ドロップ(2) | NomalRichTextBoxのテキストをpictureBOXへ(12) | Nomalクリックイベントでexeを作成できるか(2) | Nomal作成した白黒画像をWordに貼り付けてから「図として保存」(8) | Nomalアセンブリ情報が載らない(1) | Nomal先頭に空白(スペース)があるファイルを読み込んでRichTextBoxへ書き出すとスペースが削除える(6) | Nomalc#で日付型の定義の仕方で質問があります。(2) | NomalExcel Com オブジェクトの増殖(13) | Nomal二次元マップから値の取得(1) | NomalアプリでHDMIへ出す解像度を変えたい(4) | Nomal列車の時間ごとの位置情報を表示したいです。(2) | Nomal画像の中心を基点に回転(4) | NomalDataGridViewのドロップダウンリストの表示と選択後の値を分けたい(1) | NomalVB.NetでVB6.0と同じFontを指定しても同様に印刷されない(9) | NomalタッチキーボードでIMEを自動で切替えたい(6) | NomalVSTOによるエクセルアドインのインストーラーでのアップデート(1) | NomalMP4動画を再生する方法について(5) | NomalUrlにアクセスするとダウンロードされるファイルを捕まえる(2) | NomalLableのカラー色を文字変数から変更したい(5) | NomalLabelで文字単位の背景色(7) | NomalTEXTBOXのプロパティを文字列に(7) | Nomalタブレット等でスワイプによるスクロールを実装(2) | NomalPDFをフォーム上で表示させる方法につきまして(6) | NomalChart X軸上の描画を切り替えたい(0) | NomalRichTextBoxへのドラッグ&ドロップしたExcelファイルの扱い(3) | Nomal特定のPCだけ発生する「パディングは無効なので削除できません」のエラーの原因(6) | NomalASP.NET WebApi内でXmlReader.Create(url)がタイムアウトする(4) | NomalDatagridViewでファンクションキーを止めたい(5) | Nomal表示動作が重くなる(3) | Nomalbitmapを複数スレッドで処理したい(2) | NomalLoadOptionのパラメータの意味(3) | Nomalフォーム背景のみを半透明にしたい(5) | Nomal読み出し元フォームの位置取得方法(2) | Nomalコンストラクターに続く{}の意味(2) | Nomal1行で書くことできますか?(3) |



■記事リスト / ▼下のスレッド
■35224 / 親記事)  列車の時間ごとの位置情報を表示したいです。
□投稿者/ 福ちゃん 一般人(1回)-(2022/11/12(Sat) 18:49:31)
  • アイコン環境/言語:[windows10,javascript,html5] 
    分類:[その他] 

    こちら、列車の走行位置のプログラムを作っています。
    そこで気になるのが、日付ごとに、ダイヤを変更することは不可能かということです。
    例えば、2022年の例ですと、1月1〜3日は、Aダイヤで運行し、1月10日は、Bダイヤ、一般の日はCダイヤというように、
    3パターンのダイヤパターンを作りたいのですが、
    現状のflagで、やろうとしたところ、これが要するにonとoffの切り替えしかできず、
    すなわち、AかBかというのしか作れないのです。
    つまり、flagに代わる新たなパターンを作りたいのです。
    自分は触り程度しかjavascriptが扱えません。
    省略なしにご教授いただければ幸いです。
    参照元はこちらです。
    http://r113.web.fc2.com/p/viewer/oc-port/index.html
    以下はおおもとのソースです。
    <code>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <!-- saved from url=(0051)http://r113.web.fc2.com/p/viewer/oc-port/index.html -->
    <html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <meta name="author" content="">
    <meta name="description" content="">
    <meta name="keywords" content="">
    <title>大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア</title>

    <!--スタイルシート-->
    <link rel="stylesheet" href="./大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア_files/style.css" type="text/css">

    <!--JavaScript-->
    <script type="text/javascript" src="./大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア_files/main.js.ダウンロード" charset="UTF-8"></script>
    <script type="text/javascript" src="./大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア_files/diaTypeJudge.js.ダウンロード" charset="UTF-8"></script>

    <script type="text/javascript" src="./大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア_files/dia-20130323.js.ダウンロード" charset="UTF-8"></script>
    <script type="text/javascript" src="./大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア_files/meta.js.ダウンロード" charset="UTF-8"></script>
    <script type="text/javascript" src="./大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 列車在線ビューア_files/track.js.ダウンロード" charset="UTF-8"></script>


    <script type="text/javascript">
    </script>

    <style type="text/css">
    </style>

    </head>

    <body onresize="setDisplayArea()">
    この間省略
    &gt; 大阪市営地下鉄 ニュートラム(南港ポートタウン線) (コスモスクエア?住之江公園) 2013年3月23日改正


    <!--JavaScript読み込み-->
    <script type="text/javascript">
    writeBasicHTMLSet();
    main();
    </script>以下略</code>
    <code>
    //平日ダイヤか土・休日ダイヤかを判定する
    function dayJudge(year, month, date, day)
    {
    //alert(year +" "+ month +" "+ date +" "+ day)
    //フラグ
    var weekdayFlag = true;

    //月?金なら立てる
    if(day >= 1 && day <= 5)
    weekdayFlag = day >= 1 && day <= 5;
      else if(day==6)
    weekdayFlag2 = day == 6
    else
    weekdayFlag = false;

    //祝日ならたおす
    if(year == 2013 && month == 1 && date == 1)
    weekdayFlag = false;
    この間省略
    else if(year == 2015 && month == 3 && date == 21)
    weekdayFlag = false;

    return weekdayFlag;
    }
    </code>
    後ちなみに、
    <code>
    function dayJudge(year, month, date, day)
    {
    //alert(year +" "+ month +" "+ date +" "+ day)</code>
    は、
    運行パターンにかかわると思われますが、
    flag形式をやめた場合、
    これは、存置のままでも可能ですか。
    それとも書き換える必要がありますか。
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■35225 / ResNo.1)  Re[1]: 列車の時間ごとの位置情報を表示したいです。
□投稿者/ Azulean 大御所(534回)-(2022/11/13(Sun) 14:28:12)
  • アイコン2022/11/13(Sun) 14:35:19 編集(投稿者)

    返信を書くかどうか悩みました。
    一度、"書き込みのルールについて" の "「安易な質問」とは?"、"丸投げした投稿" を読んでみてください。
    下記のあたりが危ういか、抵触しているかになっていると思います。

    > 自分は触り程度しかjavascriptが扱えません。
    > 省略なしにご教授いただければ幸いです。


    No35224に返信(福ちゃんさんの記事)
    > こちら、列車の走行位置のプログラムを作っています。

    参考サイトが作ろうとしているものか、それに近しいものですよね?

    それをコピペしていじるのは、作り出すというよりは改変・翻案といった話になっていくので、著作権の問題が出てきます。
    練習・習作の間は私的複製の範囲で収まるかもしれませんが、外部公開したら著作権侵害のトラブルになるのでご注意ください。


    > そこで気になるのが、日付ごとに、ダイヤを変更することは不可能かということです。
    (略)
    > すなわち、AかBかというのしか作れないのです。

    参考にされている大阪メトロ(旧大阪市交通局)は、平日ダイヤと、土・休日ダイヤしか存在せず、お盆であろうと年末年始であろうと土・休日ダイヤになるだけなので、2 択で十分となります。
    2 択で十分なのに、3 択以上のコードを書く必要はありませんので、参考サイトは bool の flag 管理で実現しているのでしょう。


    > つまり、flagに代わる新たなパターンを作りたいのです。
    > 自分は触り程度しかjavascriptが扱えません。

    「作る」とは「コピペしていじる」ではなく、「自分でアルゴリズムを考え、コードを書いて、デバッグ・修正して目的・目標を実現すること」ですので、「作りたい」のであれば学びを深めて自分で生み出しましょう。

    flag は 2 値分割ですので、任意の N 値分割をするためにはどういったデータ構造・制御構造にすべきかは、開発言語によらない、プログラミング(アルゴリズム)の世界の話です。
    それがうまく構築できるかどうかがまずあって、その後に開発言語・環境における実現方法に落とし込んでいくことになります。


    「javascript がさわりしかわからないのですべて教えて欲しい」は「依頼」です。
    「報酬をもらえる仕事」に値すると思いますので、本気であなたに合わせた教習を望むのなら、そういった対応をしてくれるサービスを探して、対価を払いましょう。


    ※時刻表のデータも勝手に利用するとダメとしている鉄道会社やデータ提供者もあるかもしれません。ご注意ください。
違反を報告
引用返信
■35232 / ResNo.2)  【報告】この投稿はマルチポストです
□投稿者/ (報告) 一般人(1回)-(2022/11/15(Tue) 18:04:07)
  • アイコンこの投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。

    ●マルチポストされている場所
    https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5398

    ----------
    この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。

    ●書き込みのルールについて
    https://dobon.net/vb/bbs/index.html
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35222 / 親記事)  画像の中心を基点に回転
□投稿者/ ま〜 一般人(16回)-(2022/11/11(Fri) 15:16:16)
  • アイコン環境/言語:[Vs2022 basic] 
    分類:[.NET] 

    こんにちは
    画像の回転に付いてですが中央を基点に5度単位で回転させたいのですが良い方法はないでしょうか?
    宜しくお願いします

違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■35223 / ResNo.1)  Re[1]: 画像の中心を基点に回転
□投稿者/ 魔界の仮面弁士 大御所(1477回)-(2022/11/11(Fri) 16:27:00)
  • アイコンNo35222に返信(ま〜さんの記事)
    > 中央を基点に5度単位で回転させたいのですが

    WPF の話なら、RenderTransformOrigin が (0.5, 0.5) の
    RenderTransform を使用して、Angle に 5 の倍数をセットすれば良いかと。

    <Image Source="/exmaple.jpg" RenderTransformOrigin=".5,.5">
    <Image.RenderTransform>
    <RotateTransform Angle="5" />
    </Image.RenderTransform>
    </Image>


    WinForm なら、Graphics クラスで DrawImage する前に、
    TranslateTransform と RotateTransform を指定する形です。
    https://dobon.net/vb/dotnet/graphics/transform.html#section1
    http://nonsoft.la.coocan.jp/SoftSample/CS.NET/SampleRotateBitmap.html
違反を報告
引用返信
■35228 / ResNo.2)  Re[2]: 画像の中心を基点に回転
□投稿者/ ま〜 一般人(17回)-(2022/11/14(Mon) 13:38:53)
  • アイコン魔界さんいつもありがとうございます

    数日前に参考にさせて頂きコピペして試行錯誤でやってみたのですがどうしても
    画像の中心が基点とならないので困ってます。と言うか分からないが。。。

    > TranslateTransform と RotateTransform を指定する形です。
    TranslateTransformは画像の左上の0,0を移動するみたいでここを基点に回転して5度づつ回転させると左上を基点に扇みたいになります(理解してないのかも?)

    希望は元の画像の中心を基点に回転させたい。

    > http://nonsoft.la.coocan.jp/SoftSample/CS.NET/SampleRotateBitmap.html
    を試しましたが
    Private Function RotateBitmap( _
    ByVal bmp As Bitmap, ByVal angle As Single, ByVal x As Integer, ByVal y As Integer) As Bitmap

    ByValの所で構文エラーとなってしまいます。
    解決策が分からないです。



違反を報告
引用返信
■35230 / ResNo.3)  Re[3]: 画像の中心を基点に回転
□投稿者/ 魔界の仮面弁士 大御所(1479回)-(2022/11/14(Mon) 18:58:36)
  • アイコンhttp://nonsoft.la.coocan.jp/SoftSample/CS.NET/SampleRotateBitmap.html
    ではなく
    http://nonsoft.la.coocan.jp/SoftSample/VB.NET/SampleRotateBitmap.html
    を紹介するべきでしたね。


    No35228に返信(ま〜さんの記事)
    > 魔界さんいつもありがとうございます
    https://twitter.com/Benshi_Orator/status/1580431600499961858


    >> TranslateTransform と RotateTransform を指定する形です。
    > TranslateTransformは画像の左上の0,0を移動するみたいでここを基点に回転して5度づつ回転させると左上を基点に扇みたいになります(理解してないのかも?)

    先に提示した URL で解説されているように
    まず、原点を (0,0) よりさらに左上(マイナス座標)にずらしてから、
    その後、RotateTransform で回転させてから、
    今度は右下方向(プラス座標)に復帰させたのち、
    DrawImage または DrawImageUnscaled で描画します。

    描画した後は座標系が回転したままなので、連続して描画する場合は
    GraphicsState を併用します(Save / Restore メソッド)。
    ※あるいは ResetTransform メソッド。


    なお、元のサンプルでは、「PictureBox の中心」で回転させていますので、
    「画像の中心」で回転させたい場合は
     RotateBitmap(org, ang, PictureBox1.Width \ 2, PictureBox1.Height \ 2)
    ではなく
     RotateBitmap(org, ang, org.Width \ 2, org.Height \ 2)
    とします。

    また、元画像の描画位置を左上以外(x2, y2)にしたい場合は、回転後の
     g.TranslateTransform(x, y, MatrixOrder.Append)
    の後に、さらに
     g.TranslateTransform(x2, y2, MatrixOrder.Append)
    を加えてから描画するようにします。



    > Private Function RotateBitmap( _
    > ByVal bmp As Bitmap, ByVal angle As Single, ByVal x As Integer, ByVal y As Integer) As Bitmap
    > ByValの所で構文エラーとなってしまいます。

    いやいや。
    せめて、どの ByVal が何という構文エラーになっているのかまで
    きちんと内容を示しましょうよ。

    Function を置く場所を、文法的に間違えているということはないですよね…?
    (Class や Module の外側に書こうとしているなど)
違反を報告
引用返信
■35231 / ResNo.4)  Re[4]: 画像の中心を基点に回転
□投稿者/ ま〜 一般人(19回)-(2022/11/15(Tue) 17:03:14)
  • アイコン感謝です。

    出来ました。

    亀速度で勉強中です。少しずつですが理解出来る様になってきました。道のりは長いですが。。。

    魔界さんのおかげです。
    ありがとうございます。
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■35226 / 親記事)  DataGridViewのドロップダウンリストの表示と選択後の値を分けたい
□投稿者/ 炎の妖精さん 一般人(13回)-(2022/11/14(Mon) 09:39:20)
  • アイコン環境/言語:[Win10(64bit)_VB.NET(Framework 3.5)] 
    分類:[.NET] 

    いつもお世話になっております。

    表題の件について、
    Aのドロップダウンリストですが、
    「3桁(半角のみ):16桁(全角8桁)」という内容を表示させております。

    Aのドロップダウンリストを選択したら
    @には「3桁(半角のみ)」を表示させたいのですが、可能でしょうか?
323×96 => 250×74
イメージ
2022_11_14_09_22_01_.jpg
/7KB
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■35227 / ResNo.1)  Re[1]: DataGridViewのドロップダウンリストの表示と選択後の値を分けたい
□投稿者/ 炎の妖精さん 一般人(14回)-(2022/11/14(Mon) 09:54:55)
  • アイコンすみません、自己解決しました。

    CellFormattingで
    左側3文字を指定すれば想定通りの結果となりました。
    解決とさせていただきます!
解決み!
違反を報告
引用返信

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■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]



■記事リスト / ▲上のスレッド
■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]






Mode/  Pass/


- Child Tree -

2024/05/08(Wed) 01:45:35 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする