約 3,228,134 件
https://w.atwiki.jp/kenji0915/pages/5.html
まとめサイト作成支援ツールについて @wikiにはまとめサイト作成を支援するツールがあります。 また、 #matome_list と入力することで、注目の掲示板が一覧表示されます。 利用例)#matome_listと入力すると下記のように表示されます #matome_list
https://w.atwiki.jp/harumi_programming/pages/3.html
更新履歴 取得中です。 ここを編集
https://w.atwiki.jp/pissyard/
last update 0000-00-00 00 00 00 Harvey M. Deitel と Paul J. Deitel による著書、『C言語プログラミング』(原題 C How to Program)の練習問題をひたすら解いていきます。おかしなコードも多々あると思いますが、お気づきの点はご指摘していただけると嬉しいです。 環境 Windows XP SP3 Borland C++ Compiler 5.5 分からないことは? @wiki ご利用ガイド よくある質問 無料で会員登録できるSNS内の@wiki助け合いコミュニティ @wiki更新情報 @wikiへのお問合せフォーム 等をご活用ください @wiki助け合いコミュニティの掲示板スレッド一覧 #atfb_bbs_list その他にもいろいろな機能満載!! @wikiプラグイン @wiki便利ツール @wiki構文 @wikiプラグイン一覧 まとめサイト作成支援ツール total: - today: - yesterday: -
https://w.atwiki.jp/nikukyupunipuni/pages/8.html
@wikiにはいくつかの便利なプラグインがあります。 アーカイブ コメント ニュース 動画(Youtube) 編集履歴 関連ブログ これ以外のプラグインについては@wikiガイドをご覧ください = http //atwiki.jp/guide/
https://w.atwiki.jp/tatsuya23/pages/56.html
前のページへ戻る
https://w.atwiki.jp/forns/pages/44.html
今回はABC319の問題3問について解説します。 Bismは大会時は2問まで解けました。 A - Legendary Players 問題文要約 競技者10人の名前と今のレートのデータがもらえるので、名前を言ったらその人のレートを出力してね。 入力・出力例 入力 tourist 出力 3858 このコンテストが開始した時点において、touristさんのアルゴリズム部門のレーティングは3858です。 考えた解法 名前とレートが入った2次元配列を作り、そこからデータを取り出すプログラムを作ります。 S = input() name = [["tourist", 3858], # [[名前1, レート1], [名前2, レート2], [ ... ]] ["ksun48", 3679], ["Benq", 3658], ["Um_nik", 3648], ["apiad", 3638], ["Stonefeang", 3630], ["ecnerwala", 3613], ["mnbvmar", 3555], ["newbiedmy", 3516], ["semiexp", 3481]] for i in range(len(name)) # リストの回数繰り返す 名前が一致するか検索 if S == name[i][0] # もし文字列が今出したものと一致するなら print(name[i][1]) # その人のレートを出すよ break # 検索終わり B - Measure 問題文要約 N = 与えられた整数 i = 0からNまでの整数のいずれか j = 1〜9のNの約数 (1) iがN / jの倍数であるものが存在するとき jのうち最小のものをsiとする。 ※i=0の場合はjは全て当てはまるので、必ずs0=1となる。 (2) 存在しないとき "-"をsiとする。 s0〜sNをつなげた文字列を出力してね。 入力・出力例 入力 12 出力 1-643-2-346-1 解法 iを0から順番に見ていきます。 jは1〜9の中のどれかなので、ループを回してもそこまで処理に時間はかかりません。 ① S / jが割り切れる かつ ② i / (S / j)が割り切れる とき、(1)の処理を行うようにプログラムします。 ただし、この条件だとj=0のとき、Sを0で割るという処理はできませんので、強制的にs0=1とするような処理を行います。 S = int(input()) ans = "" for i in range(S+1) # 0〜Nで順番にiを見ていく if i == 0 # i=0の場合 ans += "1" else count = 0 for j in range(9) if S % (j+1) == 0 and i % (S // (j+1)) == 0 # %、//は割ったときの余り、商を出力したものだよ ans += str(j+1) elif j == 8 ans += "-" print(ans) C - False Hope 問題文要約 この問題はかなり複雑なので、今回は省略します。 入力・出力例 入力 3 1 9 2 5 6 2 7 1 出力 0.666666666666666666666666666667 解法 総当たりの処理を正確に書くことが問われる問題だと思います。 今回は、総当たりで処理をするにあたって必要な、「1〜9の文字を並び替えた全ての通りのリスト」を取得する方法が分からなかったため、解くことができませんでした。 それを行うプログラムは以下の通りです。 permutations(range(9)) こちらのプログラムを用いて、全体のプログラムを書いたのが以下の通りです。 from itertools import permutations masu = [] for i in range(3) # 入力例の場合、masu=[3, 1, 9, 2, 5, 6, 2, 7, 1] masus = list(map(int, input().split())) for j in range(len(masus)) masu.append(masus[j]) # retsuは条件を満たすか調べる列一覧 retsu =[(0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6)] # ordersは「1〜9の文字を並び替えた全ての通りのリスト」 orders = list(permutations(range(9))) ans = 0 for order in orders for a, b, c in retsu count = 0 # breakを2回行うためのカウント for _ in range(3) # a番目とb番目に選ばれたマスに書かれている数字が一緒 a番目よりc番目の方が遅い b番目よりc番目の方が遅い if masu[a]==masu[b] and order[a] order[c] and order[b] order[c] ans += 1 count += 1 break a, b, c = b, c, a if count == 1 break print(1 - (ans / 362880))
https://w.atwiki.jp/neetsdkasu/pages/67.html
スタックマシン pop 直後を値とみなしスタックに入れる push スタックから取り出して捨てる load スタックから取り出した値を変数アドレスとみなし変数の値をスタックに入れる store スタックから2つ値を取り出し、2番目の値を変数アドレスとみなし最初の値を変数に格納する dup スタック末尾の値をコピーしてスタックに入れる swap スタック末尾の値と末尾から2番目の値を入れ替える call 直後をコードアドレスとみなしプログラムポインタをプログラムスタックに積みコードアドレスにプログラムポインタを移動する return プログラムスタックから取り出した値にプログラムポインタを移動する goto 直後をコードアドレスとみなしプログラムポインタを移動する add スタックから2つ値を取り出しその和をスタックに入れる (末尾から2番目+末尾) sub 〃 差 (末尾から2番目-末尾) mul 〃 積 div 〃 商 mod 〃 余り inc スタックの末尾の値を1だけインクリメントする dec スタックの末尾の値を1だけデクリメントする abs スタックから1つ値を取り出して絶対値をスタックに入れる sgn スタックから1つ値を取り出して正なら1、ゼロなら0、負なら-1をスタックに入れる and スタックから2つ値を取り出しその論理積をスタックに入れる or 〃 論理和 xor 〃 排他論理和 not スタックから1つ値を取り出しビット反転してスタックに入れる srl スタックから2つ値を取り出し論理右シフトしてスタックに入れる sll 〃 論理左シフト sra 〃 算術右シフト sla 〃 算術左シフト jze 直後をコードアドレスとみなしスタックの末尾の値がゼロならコードアドレスにプログラムポインタを移動する jnz 〃 ゼロ以外なら jlt 直後をコードアドレスとみなし、スタック末尾から2つの値を比較し末尾から2番目が末尾より小さければプログラムポインタを移動する jle 〃 ゼロ以下ならば jgt 〃 大きければ jge 〃 ゼロ以上ならば
https://w.atwiki.jp/atachi/pages/49.html
WPF時代のグラフィックス ビジュアルオブジェクト カスタムコントロール WPFでの画像の扱い グラフィックス関連のクラス構成 [#i1cf7c34] レンダリング シェイプ ブラシ ブラシの種類 ジオメトリ ジオメトリの描画 [#l2dbcfd6] レンダリング UIのレンダリング ビットマップのレンダリング WPF時代のグラフィックス WPFではボタンやツリービューなどのコントロールの外観を描画する方法に新しい方式を取り入れています。 これまでは、グラフィックスとしてピクセルの描画を行っていましたが、WPFではこれらがパスなどを用いたドローイング方式となりました。 ビジュアルオブジェクト WPFでは描画する領域をビジュアルオブジェクトと呼び、ビジュアルオブジェクトに対し描画関数により図形の描画を行います。 すべてのコントロールは1つから複数のビジュアルオブジェクトの組み合わせで描画されており、コントロール自身もビジュアルオブジェクトです。 ビジュアルオブジェクトは親子関係を構築することができます。 コントロール自身もビジュアルオブジェクトなので、ボタンの文字が表示される場所に画像を表示したり、ツリービューコントロールを表示することもできます。 予め用意されているWPFで使用できるコントロールはFrameworkElementのサブクラスです。 カスタムコントロール 自分で独自のコントロールを作成する場合、ソースコードで定義するにはFrameworkElementのサブクラスとして作成します。 WPFでの画像の扱い WPFではBitmapSourceのサブクラスを主に扱います。このクラスはWPFのコントロールやスタイルと共に使いやすいように様々なプロパティやインターフェースを持ったものです。 GDI+ではImageクラスを主に扱います。Imageクラスは画像そのものをデータとしてクラスにカプセル化したものでこのクラス自体は画像への操作などは行うことができません。 グラフィックス関連のクラス構成 Object └ DispathcerObject └ DependencyObject └ Freezable └ Animatable └ ImageSource ├ BitmapSource │ ├ BitmapFrame MSDN │ └ BitmapImage └ DrawingImage レンダリング DrawingVisualは図形などを描画するためのコンテキストや描画した図形情報を格納しています。 実際にDrawingVisualに図形を描画するにはDrawingVisualからDrawingContextを取得します。 DrawingVisual dv = new DrawingVisual(); using(DrawingContext dc = dv.RenderOpen()){ dc.DrawEllipse(Brushes.Red,null,new Point(0,0), 1,1); } シェイプ System.Windows.Shapes名前空間に属した形を描画するためのクラス群です。 シェイプはベクターグラフィックスなので、解像度の変更にもスムーズに適切な解像度で描画されます。 Rectangle 矩形 Ellipse 楕円 Line 直線 Path 曲線 Polygon 多角形 Polyline 閉じていない多角形 PolygonとPolylineは似ていますが、複数の直線で構成された図形がとじているか閉じていないかで異なります。 また、Pathは連続した直線・曲線となります。 ブラシ // 正方形の矩形 Rectangle rect = new Rectangle(); rect.Width = 75; rect.Height = 75; // 矩形を単色で塗りつぶす SolidColorBrush myBrush = new SolidColorBrush(Colors.Red); rect.Fill = myBrush; ブラシの種類 SolidColorBrush 単色塗りつぶし LinearGradientBrush 線形グラデーション塗りつぶし RadialGradientBrush 円形グラデーション塗りつぶし ImageBrush 画像による塗りつぶし(拡大・縮小・タイル) DrawingBrush VisualBrush ジオメトリ ジオメトリはドロー系ソフトの「パス」と考えるとわかりやすい。(Adobe Illustratorなど) ジオメトリによって描画した図形は、拡大・縮小を行う際にその都度、座標を変えて再描画する必要がない(自動的に計算される) また、イージングなどのアニメーションが可能で、始点と終点の座標を与えれば中割の描画は自動的に計算され表示される。 このような特徴を持ったジオメトリは、Geometry クラスを基点としたクラスツリーをとる。 図形の描画に関しては、Shapeと同じものが用意されている。 // Create a figure that describes a // line from (10,20) to (100,130). PathFigure myPathFigure = new PathFigure(); myPathFigure.StartPoint = new Point(10,20); myPathFigure.Segments.Add( new LineSegment(new Point(100,130), true /* IsStroked */ )); /// Create a PathGeometry to contain the figure. PathGeometry myPathGeometry = new PathGeometry(); myPathGeometry.Figures.Add(myPathFigure); // Display the PathGeometry. Path myPath = new Path(); myPath.Stroke = Brushes.Black; myPath.StrokeThickness = 1; myPath.Data = myPathGeometry; canvas1.Children.Add(myPath); ジオメトリの描画 ジオメトリをVisualObjectに描画するにはUIElementクラスである必要があります。 UIElementのサブクラスであるPathクラスを使用してジオメトリをCanvasに描画するのが一般的です。 // Display the PathGeometry. Path myPath = new Path(); myPath.Stroke = Brushes.Black; myPath.StrokeThickness = 1; myPath.Data = myPathGeometry; // ジオメトリを設定 canvas1.Children.Add(myPath); // XAMLなどで定義したCanvas レンダリング 画像のレンダリングには、作成する画像の目的によって2種類の方法があります。 1つ目がユーザーインターフェース用の画像の作成です。ユーザーインターフェースではどのような環境でも表示される事が望まれるため、表示環境(DPIなど)に影響されにくいような描画システムを必要とします。 2つ目がビットマップなどの画像を作成するためのレンダリングです。 こちらは主にマルチメディアのための画像です。 それぞれレンダリングするためのクラスが異なります。 前者は、System.Windows.Media名前空間に属しています。 後者は、System.Drawing名前空間に属しており、GDI+とよばれる描画ライブラリのラッパーです。 UIのレンダリング ボタンなどのフォームコントロールを表示するための画像はDrawingVisualクラスを使用します。 このクラスは画像作成のためのコンテキストを持っており、プログラムによって図形を描画した後、ビットマップとして画像を取得できます。 このコンテキストは画像や図形を描画するためのメソッドを備えているため、簡単に図形を作成することができます。 出来上がるのは1枚のビットマップであるため、マウスイベントなどの処理はできません。 DrawingVisual drawingVisual = new DrawingVisual(); // 描画用のコンテキストを取得 DrawingContext drawingContext = drawingVisual.RenderOpen(); // 矩形を描画 Rect rect = new Rect(new System.Windows.Point(160, 100), new System.Windows.Size(320, 80)); drawingContext.DrawRectangle(System.Windows.Media.Brushes.LightBlue, (System.Windows.Media.Pen)null, rect); // コンテキストを閉じる drawingContext.Close(); 次のようにすればビットマップとして描画した画像を取り出せます。 RenderTargetBitmap bmp = new RenderTargetBitmap(180, 180, 120, 96, PixelFormats.Pbgra32); bmp.Render(drawingVisual); ビットマップのレンダリング Bitmap myBitmap = new Bitmap(100, 100); // レンダリングするためのキャンバスを作成します。 // この例では「100×100」の画像を作成します。 Graphics g = Graphics.FromImage(myBitmap); // 描画用コンテキストの作成
https://w.atwiki.jp/gen3/pages/28.html
TiltTest.c Windowsプログラミングにはなじみが無いので、関数がどこから来たものか調べながら読み下してみる。 #include windows.h // ... Microsoft SDKs/Windows/v7.0/include/windows.h #include math.h // ... Microsoft Visual Studio 10.0/VC/include/math.h #include string.h // ... 上に同じ #include "wintab.h" // NOTE get from wactab header package (TiltTest.zipに同梱) #define PACKETDATA (PK_X | PK_Y | PK_BUTTONS | PK_NORMAL_PRESSURE | \ PK_ORIENTATION | PK_CURSOR) // PK_xxはwintab.h内で定義 #define PACKETMODE 0 #include "pktdef.h" // NOTE get from wactab header package (TiltTest.zipに同梱) #include "msgpack.h" // (TiltTest.zipに同梱) #include "Utils.h" // (TiltTest.zipに同梱) #include "tilttest.h" // (TiltTest.zipに同梱) /* converts FIX32 to double */ #define FIX_DOUBLE(x) ((double)(INT(x))+((double)FRAC(x)/65536)) #define pi 3.14159265359 ここまでは特に難しいことはない。 #ifdef WIN32 #define MoveTo(h,x,y) MoveToEx(h,x,y,NULL) #endif MoveToEx は Microsoft SDKs/Windows/v7.0A/Include/WinGDI.h の4520行にプロトタイプ宣言?がある。 char*gpszProgramName = "TiltTest"; HANDLE hInst; /* Handle for instance */ HCTX hTab = NULL; /* Handle for Tablet Context */ POINT ptNew; /* XY value storage */ UINT prsNew; /* Pressure value storage */ UINT curNew; /* Cursor number storage */ ORIENTATION ortNew; /* Tilt value storage */ RECT rcClient; /* Size of current Client */ RECT rcInfoTilt; /* Size of tilt info box */ RECT rcInfoName; /* Size of cursor name box */ RECT rcInfoGen; /* Size of testing box */ RECT rcDraw; /* Size of draw area */ double aziFactor = 1; /* Azimuth factor */ double altFactor = 1; /* Altitude factor */ double altAdjust = 1; /* Altitude zero adjust */ BOOL tilt_support = TRUE; /* Is tilt supported */ 以上はグローバル変数の定義。 ptNew以後は、タブレットから来たデータを保持する構造体を指すポインタらしい。 上から順に、XY座標、筆圧、カーソル番号(ペン先か消しゴムかひょっとするとサイドスイッチの状態も)、ペンの傾き角度、の様子。 rcClient以後は、情報をウインドウ上に表示するエリアのための構造体らしい。 aziFactor ... 方位角についての何らかの係数 altFactor ... 加速度についての何らかの係数 altAdjust ... 加速度についての何らかの係数 最後に、ペンの傾きをサポートしてないタブレットではflaseになるBOOL型変数か。 ここでカーソル番号curNewの内容として、ペンのペン先か消しゴム側かの情報に加えて、サイドスイッチの情報や、モノによってはタブレットに仕込まれたスイッチの情報を返しているかもしれないことに注意しておく。 また、タブレットが複数接続されている場合には hInst や hTab の内容が変わっているかもしれない。 続いてプログラム本体部分が来る。 int PASCAL WinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow) HINSTANCE hInstance; HINSTANCE hPrevInstance; LPSTR lpCmdLine; int nCmdShow; この構文だとVC++2010のデフォルトでは、インテリセンス機能による警告が出る。警告の出ない構文に書き直すと、例えば次のようになる。 int PASCAL WinMain( HINSTANCEhInstance, HINSTANCEhPrevInstance, LPSTRlpCmdLine, intnCmdShow) WinMain()の中身はいたってシンプル。 { MSG msg; if (!hPrevInstance) if (!InitApplication(hInstance)) return (FALSE); /* Perform initializations that apply to a specific instance */ if (!InitInstance(hInstance, nCmdShow)) return (FALSE); /* Acquire and dispatch messages until a WM_QUIT message is received. */ while (GetMessage( msg, NULL, 0, 0)) { TranslateMessage( msg); DispatchMessage( msg); } // Return Wintab resources. Cleanup(); return (msg.wParam); } WinMain() は Windows でのウインドウアプリケーションの主要関数で、C言語の main() に相当するものとのこと。Web を調べると、どのサンプルコードでもこの部分はほとんど違いがない。この関数が実行されたら、あとはマウスやキーボードや、TiltTest の場合はタブレットのイベント割り込みを待つことになる。 その割り込み処理をフックして、アプリケーションのコードを記述することになる。 InitApplication() BOOL InitApplication(HINSTANCE hInstance) // BOOL InitApplication(hInstance) // HANDLE hInstance; // 呼び出し側が HINSTANCE でありこの文おそらく間違いなので変更する。TILTTEST.Hも。 { WNDCLASS wc; /* Fill in window class structure with parameters that describe the */ /* main window. */ wc.style = 0; wc.lpfnWndProc = MainWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE + 1); wc.lpszMenuName = "TiltTestMenu"; wc.lpszClassName = "TiltTestWClass"; /* Register the window class and return success/failure code. */ return (RegisterClass( wc)); } WNDCLASS は Microsoft SDKs/Windows/v7.0A/Include/WinUser.h で 構造体 tagWNDCLASSA で定義されている。アプリケーションウインドウの雛形が作成されているのかな。 InitInstance() 長いので調査結果や変更点はソースコードにコメントの形で埋め込んだ。 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) // 第一引数の型は呼び出し側が HINSTANCE なのでそれにあわせた。TILTTEST.H も書き直した。 // HANDLE hInstance; // int nCmdShow; { HWND hWnd; /* Handle for window */ HDC hDC; /* Handle for Device Context */ TEXTMETRIC textmetric; /* Structure for font info */ int nLineH; /* Holds the text height */ int Xinch, Yinch; /* Holds the number of pixels per inch */ int Hres, Vres; /* Holds the screen resolution */ char WName[50]; /* String to hold window name */ struct tagAXIS TpOri[3]; /* The capabilities of tilt */ double tpvar; /* A temp for converting fix to double */ /* Save the instance handle in static variable, which will be used in */ /* many subsequence calls from this application to Windows. */ hInst = hInstance; hInst はこのソースのはじめで定義したグローバル変数。 if ( !LoadWintab( ) ) { ShowError( "Wintab not available" ); return FALSE; } LoadWintab()の戻り値でタブレットサービスの有無がわかるようだ。 /* check if WinTab available. */ if (!gpWTInfoA(0, 0, NULL)) { MessageBox(NULL, "WinTab Services Not Available.", gpszProgramName, MB_OK | MB_ICONHAND); return FALSE; } gpWTInfoA()の引数でタブレットに関するいろいろな情報が得られる模様。 http //www.wacomeng.com/windows/docs/Wintab_v140.htm の WTInfo を参照すると、引数は カテゴリー 情報のカテゴリ(種類)を整数で指定 インデックス カテゴリ内のどの情報かを整数で指定 戻り値を入れるバッファへのポインタ となっている。(0,0,NULL)の指定だと、必要なバッファサイズ(一番大きな情報を返すカテゴリのために必要なバッファのサイズ)を返す。 タブレットが接続されていないなど利用できない状態の場合は0を返す。上記のコードは0かどうかを見ている。 /* check if WACOM available. */ gpWTInfoA(WTI_DEVICES, DVC_NAME, WName); if (strncmp(WName,"WACOM",5)) { MessageBox(NULL, "Wacom Tablet Not Installed.", gpszProgramName, MB_OK | MB_ICONHAND); // return FALSE; } 上記のコードは、ワコム社のタブレットが接続されているかどうかを、帰ってきた値の中にWACOMの文字列があるかどうかでチェックしている。 WTI_DEVICES と DVC_NAME は .h の中で定義されているのだろう。この組み合わせでデバイスの名前を返す模様。 組み合わせる値と返る情報の表の翻訳版があったのでありがたく参照させていただく(外部参照)。 /* get info about tilt */ tilt_support = gpWTInfoA(WTI_DEVICES,DVC_ORIENTATION, TpOri); if (tilt_support) { /* does the tablet support azimuth and altitude */ if (TpOri[0].axResolution TpOri[1].axResolution) { /* convert azimuth resulution to double */ tpvar = FIX_DOUBLE(TpOri[0].axResolution); /* convert from resolution to radians */ aziFactor = tpvar/(2*pi); /* convert altitude resolution to double */ tpvar = FIX_DOUBLE(TpOri[1].axResolution); /* scale to arbitrary value to get decent line length */ altFactor = tpvar/1000; /* adjust for maximum value at vertical */ altAdjust = (double)TpOri[1].axMax/altFactor; } else { /* no so dont do tilt stuff */ tilt_support = FALSE; } } 上記はペンの傾き情報が利用できるかどうかをチェックしている模様。 /* Create a main window for this application instance. */ wsprintf(WName, "TiltTest %x", hInst); hWnd = CreateWindow( "TiltTestWClass", WName, WS_OVERLAPPEDWINDOW, 0, 0, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); /* If window could not be created, return "failure" */ if (!hWnd) return (FALSE); 上記はアプリケーションウインドウを表示する部分らしい。 /* Get Device Context and setup a rects to write packet info */ hDC = GetDC(hWnd); if (!hDC) return FALSE; // 以下のブロックは // ウインドウにテキストを書くための、フォントのサイズなどのパラメータを取得している。 GetTextMetrics(hDC, textmetric); nLineH = textmetric.tmExternalLeading + textmetric.tmHeight; Xinch = GetDeviceCaps(hDC, LOGPIXELSX); Yinch = GetDeviceCaps(hDC, LOGPIXELSY); Hres = GetDeviceCaps(hDC, HORZRES); Vres = GetDeviceCaps(hDC, VERTRES); ReleaseDC(hWnd, hDC); GetClientRect(hWnd, rcClient); rcInfoTilt = rcClient; rcInfoTilt.left = Xinch / 8; rcInfoTilt.top = Yinch / 8; rcInfoTilt.bottom = rcInfoTilt.top + nLineH; rcInfoName = rcInfoTilt; rcInfoName.top += nLineH; rcInfoName.bottom += nLineH; rcInfoGen = rcInfoName; rcInfoGen.top += nLineH; rcInfoGen.bottom += nLineH; rcDraw = rcInfoGen; rcDraw.left = 0; rcDraw.top += nLineH; rcDraw.bottom = rcClient.bottom; 以下、書きかけ。 /* Make the window visible; update its client area; and return "success" */ ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); return (TRUE); } これを実行するとウインドウが表示され、ペンのタブレット上の位置が十字カーソルで表示され、十字カーソルを中心にして筆圧に従った大きさの円が描画される。カーソルの座標はタブレット面の座標に対応しており、タブレットドライバによるマルチモニタの割付などは無視している。 またウインドウがアクティブの間、マウスカーソルとタブレットの十字カーソルは別物として動作する。つまりマウスカーソルはマウスで、十字カーソルはタブレットペンで動く。 さらにタブ1=画面1、タブ2=画面2と割り付けてあったとき、ウインドウをどちらの画面に表示させてもタブ面の絶対座標が画面上の絶対座標に対応するかのように十字カーソルは動く。
https://w.atwiki.jp/ktakeda/pages/11.html
インスタグラムプラグイン 人気の画像共有サービス、Instagram(インスタグラム)の画像をアットウィキに貼れるプラグインです。 #ig_user(ユーザー名) と記載することで、特定ユーザーのInstagramのフィードを表示することができます。 例)@dogoftheday #ig_user #ig_tags(タグ名) と記載することで、特定タグのInstagramのフィードを表示することができます。 #dogofthedayjp タグ #ig_tag #ig_popular と記載することで、Instagramのpopularフィードを表示することができます。 詳しい使い方は以下のページを参考にしてください! =>http //www1.atwiki.jp/guide/pages/935.html