Message from discussion
Größe, Position der Checkbox (ownerdraw)
Received: by 10.180.98.234 with SMTP id el10mr1255758wib.3.1347850781609;
Sun, 16 Sep 2012 19:59:41 -0700 (PDT)
Path: q11ni104468466wiw.1!nntp.google.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!85.12.40.139.MISMATCH!xlned.com!feeder7.xlned.com!newsfeed10.multikabel.net!multikabel.net!newsfeed20.multikabel.net!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!border4.nntp.ams.giganews.com!border2.nntp.ams.giganews.com!border2.nntp.dca.giganews.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.bbs-scene.org!goblin2!goblin1!goblin.stu.neva.ru!news2.arglkargh.de!easy.in-chemnitz.de!news.tu-chemnitz.de!.POSTED!not-for-mail
From: Dirk Noack <nospam-d-dot-noa...@-ibs-dash-automation.dot.de>
Newsgroups: de.comp.os.ms-windows.programmer
Subject: Re: [VC, MFC] =?ISO-8859-15?Q?Gr=F6=DFe=2C_Position_der_Ch?=
=?ISO-8859-15?Q?eckbox_=28ownerdraw=29?=
Date: Thu, 13 Sep 2012 09:57:01 +0200
Organization: ibs Automation GmbH
Lines: 52
Message-ID: <k2s3kd$6vm$1@gazette.hrz.tu-chemnitz.de>
References: <k2n0k9$7bn$1@gazette.hrz.tu-chemnitz.de> <k2njvu$tab$1@news.albasani.net> <k2ru9r$3hq$1@gazette.hrz.tu-chemnitz.de> <k2s171$2v0$1@news.albasani.net>
NNTP-Posting-Host: 194.31.246.64
Mime-Version: 1.0
X-Trace: gazette.hrz.tu-chemnitz.de 1347523021 7158 194.31.246.64 (13 Sep 2012 07:57:01 GMT)
X-Complaints-To: abuse@tu-chemnitz.de
NNTP-Posting-Date: Thu, 13 Sep 2012 07:57:01 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.24 (X11/20100228)
In-Reply-To: <k2s171$2v0$1@news.albasani.net>
Bytes: 2956
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Content-Transfer-Encoding: 8bit
Jochen Arndt schrieb:
> GetButtonStyle():
> Returns the button styles for this CButton object. This function returns
> only the BS_ style values, not any of the other window styles.
>
> Du musst GetStyle() verwenden. Der MSDN Text ist hier etwas irref�hrend.
> Es werden n�mlich nur die mit BS_TYPEMASK und BS_LEFTTEXT maskierten
> Bits zur�ckgegeben.
Dann hat mich der MSDN Text wirklich in die Irre gef�hrt, denn ich habe
es so interpretiert:
(1) Die Funktion gibt nur BS_-Stile zur�ck (-> BS_LEFT, BS_RIGHT ist ein
BS_-Stil)
(2) Die Funktion gibt nicht die anderen Fensterstile zur�ck (->
WS_-Stile ... die will ich ja auch nicht).
Das die "erweiterten" BS_-Stile oberhalb von 0xFF bzw. au�er BS_TYPEMASK
und BS_LEFTTEXT) �ber GetStyle() zu lesen sind, war mir nicht klar.
>
> Aktivierung von OwnerDraw in PresubclassWindows():
>
> ModifyStyle(BS_TYPEMASK, BS_OWNERDRAW, SWP_FRAMECHANGED);
Ich hatte bisher (geerbt vom Ersteller der vorhandenen Klasse) nur
ModifyStyle(0, BS_OWNERDRAW, SWP_FRAMECHANGED).
>
> Beim ermitteln der Textformatierung musst du noch darauf achten, dass
> die meisten Flags Kombinationen sind (z.B. BS_RIGHT = 0x200, BS_CENTER =
> 0x300). Ich verwende folgendes:
Ok, das hatte ich schon aus einem Newsgroup-Thread mit Dir und Martin
Richter von vor 3 Jahren gelesen und zur Kenntnis genommen.
>
> DWORD nStyle = GetStyle();
> UINT uFormat = 0;
> if (nStyle & BS_MULTILINE)
> uFormat = DT_WORDBREAK;
> else // single line
> {
> [...]
> }
> // Windows 2000/XP: Hide accelerator (no underline for shortcut)
> if (lpDrawItemStruct->itemState & ODS_NOACCEL)
> uFormat |= DT_HIDEPREFIX;
>
>
Das werde ich mal ausprobieren.
Danke!