Más contenido relacionado
La actualidad más candente (20)
Similar a 第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89 (20)
第二世代MDD(萌え駆動開発)によるプログラミングWin32 #CLRH89
- 17. [17]
萌え駆動開発 (MDD:Moe Driven Development)
■定義
萌える想いをコードに変換
するソフトウェア開発手法
■解説
古くからヲタクを中心に実践されてきた
伝統的な開発手法です。変数名がアレ。
コメントがアレ。コードネームがアレ。
開発環境がアレ。など
- 37. [37]
1. 本体 2. イラスト 3. ボイス
クリエイターマッチングサイト活用
• プロ・アマ問わず多数のイラスト
レーターさん、声優さんが登録
• この人にお願いしたい!!
と強く思う方にお願いする
⇒ 多分これが一番大切!!
【想像】第二世代萌え駆動開発の始め方
- 43. [43]
アレな開発環境 > Visual Studio に壁紙
Visual Studio痛IDE拡張1.5
© 踊れないダメ人間 さん http://aoikagami.wordpress.com/
スライドショー
にも対応!!
- 54. [54]
HTML + CSS + JavaScript で UI 構築
CSS によりデザインを容易に変更可能
DirectWrite による美しいフォント (IE9以降)
JavaScript ライブラリが利用可能
IE の設定に影響を受ける
⇒ 画像表示設定など
IE のバージョンにより挙動が異なる
⇒ IE6/7/8/9/10/11
⇒ Win7/8 で挙動が異なることもorz
IE が存在しない環境では動作しない
⇒ Server Core など
- 62. [62]
HTML ベースから GDI/GDI+ への回帰
CrystalDiskInfo 1~5 CrystalDiskInfo 6
開発環境 Visual C++/MFC Visual C++/MFC
ベースクラス CDHtmlDialog ベース独自拡張 CDialogEx ベース独自拡張
レイアウト HTML + CSS + JavaScript ピクセル固定
HiDPI 対応 OpticalZoom (IE8 以降) 自前拡大 (Per-Monitor DPI 対応)
文字列描画 DirectWrite (IE9 以降)
GDI/GDI+
(DirectWrite 対応検討中…)
画像描画 IEコンポーネント GDI+
ボタン
PNG画像
透過PNG対応 (IE7 以降)
CButton ベース独自拡張
(背景描画+透過 PNG 対応)
- 63. [63]
GDI/GDI+ で UI 構築
Q: 画面がチラつくことがあるんですが…
A: ダブルバッファリングしたら?
Q: ボタンに透過 PNG 画像を使いたいのですが…
A: オーナードローしたら?
Q: HiDPI に対応したいのですが…
A: コントロールを拡大縮小したら?
Q: すっ、少しぐらいは良いところあるんですよね?
A: 互換性? あんまりないんじゃない?
嫌な予感しかしない…
- 64. [64]
固定ピクセルレイアウト & HiDPI 対応
m_CtrlFirmware.InitControl (256 + OFFSET_X, 88, 180, 20, m_ZoomRatio,
m_CtrlSerialNumber.InitControl(256 + OFFSET_X, 112, 180, 20, m_ZoomRatio,
m_CtrlInterface.InitControl (256 + OFFSET_X, 136, 180, 20, m_ZoomRatio,
m_CtrlTransferMode.InitControl(256 + OFFSET_X, 160, 180, 20, m_ZoomRatio,
m_CtrlDriveMap.InitControl (256 + OFFSET_X, 184, 180, 20, m_ZoomRatio,
m_CtrlAtaAtapi.InitControl (256 + OFFSET_X, 208, 408, 20, m_ZoomRatio,
m_CtrlFeature.InitControl (256 + OFFSET_X, 232, 408, 20, m_ZoomRatio,
x Y W H Zoom
Width=180*m_ZoomRatio
Height=20*m_ZoomRatio
X=(256+OFFSET_X)*m_ZoomRatio
Y=88*m_ZoomRatio
OFFSET_X
- 66. [66]
透過 PNG 対応ボタン
CButtonCx* クラス (オーナードローによる透過 PNG 表示に対応)
1. ボタンの背景をバックバッファに描画
2. 背景と透過 PNG 画像をアルファブレンド (自前)
3. GDI もしくは GDI+ で文字列描画 (DirectWrite への対応は検討中)
4. 表示 (ダブルバッファ対応)
*ソフト屋 巣さん http://softyasu.net/ の CAlphaButton を参考にさせていただきました。
今どきのライブラリなら全部
やってくれるんですけどね…
- 67. [67]
Win32 標準コントロールの透過
Win7 以前 Win8 以降
if (m_IsHighContrast) // ハイコントラスト環境では透過機能を無効化
{
::SetLayeredWindowAttributes(m_List.m_hWnd, 0, 255, LWA_ALPHA);
}
else
{
::SetLayeredWindowAttributes(m_List.m_hWnd, 0, 192, LWA_ALPHA);
}
リストコントロールが透過
Win8 からコントロールのレイヤードウィンドウに対応
- 68. [68]
Per-Monitor DPI (Win8.1 以降)
96 dpi (100%) 192 dpi (200%)
DPI境界を跨ぐたびに適切な拡大率に調整
※詳細は Per-Monitor DPI で検索!!
タイトルバーとメニューバーのサイズは共通
⇒ 大きすぎる/小さすぎるという問題が発生
⇒ 自前で描画するしかない?? (未対応)