背景を透明にできる独自のネイティブ win32 C++ チェックボックスを作成しようとしています。アイデアは、ウィンドウ/ウィジェットを Windows XP スタイルのチェックボックスとまったく同じように見せることですが、背景を透明にすることができます。
私の問題:テキスト ボックスに目盛りを描画すると、「目盛り」の線がピクセル化されてギザギザに見えます - どのように見えるかについては、下の図を参照してください。実際のチェックボックスのチェックのように滑らかに見えません。
左のチェックボックスは私のもので、右は複製しようとしているデフォルトのウィンドウです。
目盛りを滑らかにし、ピクセル化しないようにするにはどうすればよいですか。目盛りを描画するために使用できる Win32 GDI 関数は何ですか。GDI で目盛りを描画する代わりに、ビットマップ イメージを使用する必要がありますか? 現在、目盛りを描画するために PolylineTo() を使用しています。PolylineToEx() を使用する必要がありますか?
アドバイスをいただければ幸いです。
目盛りを描画するためのコード (このコードは WM_PAINT にあります):
HGDIOBJ hPen = CreatePen(PS_SOLID, 2, RGB(45,45,45)); //ExtCreatePen(PS_COSMETIC, dwPenStyle[i], 1, &lb, 0, NULL);
HGDIOBJ hPenOld = SelectObject(hdc, hPen);
POINT tickPnts[3] = {{3,((height-CHECK_RECTH)/2)+6}, {5,((height-CHECK_RECTH)/2)+9}, {9,((height-CHECK_RECTH)/2)+2}};
MoveToEx(hdc, tickPnts[0].x, tickPnts[0].y, NULL);
PolylineTo(hdc, tickPnts, 3);
SelectObject(hdc, hPenOld);
DeleteObject(hPen);