(C#)フォームを背景色で透過し、透過PNGを表示する

WMPLibを使ってシコシコとプログラム書いてるわけですが。

再生中の動画の上に、任意のタイミングで透過PNGを重ねたいという要望が出まして。

「透過PNGを表示したFormのOpacity下げたらいけるんじゃね?」と軽く考えていたらハマったのでメモ。

「透過PNGを表示したFormのOpacity下げる」と、透過PNGの透過していない部分まで透けちゃうというお粗末なことになりやした。

以下、解決したコード。

using System;
using System.Drawing;
using System.Windows.Forms;

namespace Hoge {
    public partial class SukesukeForm : Form {
        public SukesukeForm() {
            InitializeComponent();
        }

        private void
SukesukeForm_Load(object sender, EventArgs e) {
            //背景画像設定
            Bitmap img = new Bitmap("../../img/sukesuke.png");
            img.MakeTransparent();
            this.BackgroundImage = img;

            //フォームを背景色で透過させる
            this.TransparencyKey = BackColor;
            
        }
    }
}

このフォームを動画を再生しているフォームの上に重ねることで達成しました。

めでたしめでたし。

Win8とWebsocket

C#でWebsocketサーバを作りたいんですが、

開発に使っているWin8マシンではどうも上手くいかない。

WCFWebsocketとかSuperWebsocketとか試してみたけど、

クライアントがサーバにメッセージを送ると、サーバが即切断してた。

 

この記事によると、Win8からはWebsocketの扱いが変わった(?)ようで。

結局、C# on Win8でWebsocketサーバを作るときはSystem.Net.WebSocketで。

クライアントはWebsocket4Netがいいみたい。

 

弥生の青色申告で家事按分

とりあえず今年の収支はどうなってんのか気になったので、申告書を出してみた。

家事按分したはずの水道光熱費が100%書き出されていたので「ヤバい」と思い調べてみた。

http://tax.f-blog.org/yayoi/kaji-anbun.html

によると、「家事按分振替」の画面で仕分け書出しボタンを押さないといけないそうな。

ATMega168 20PU使ってみた

環境はWin8、Atmel Studio6.1。

単なるLEDチカチカしかやってないけど、備忘録。

 

・内臓オシレータのデフォルト周波数は8MHz

 なので、プロジェクトのプロパティから、

 AVR/GNU C Compiler→SymbolsでF_CPU=8000000ULと定義。

 プログラム書き込み時にSUT_CKSELは触らないのが吉。

 F_CPUを16MHzに設定したため、_delay_ms()がおかしくなってた。

 

・CKDIVはチェックを外すべし

 デフォルトではチェックがついていて、8分周してしまう。

 なんか省電力になるらしいけど。

 やっぱり_delay_ms()やシリアル通信などに影響を与えそうなので。

 

 

TWE-LiteのADCは0~2Vまで?

見出しの通り。

出典はこちらの「他の無線モジュールからIO状態の通知」。

TWE-Lite DIP使用方法(上級編) - TOCOS-WIRELESS.COM

それに対して、使いたいセンサは最大で約3V出力。

どうすっぺか・・・?

抵抗かましてセンサ出力を下げる?

感度が下がるよなぁ。