delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/12/28/02:13:12

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <019e01c3cd11$febfb2e0$6601a8c0@MYKEPCGW>
From: "Myke Predko" <myke AT passport DOT ca>
To: <cygwin AT cygwin DOT com>
Subject: Windres Problem with ComboBox/tabbing?
Date: Sun, 28 Dec 2003 02:12:46 -0500
MIME-Version: 1.0
X-Authentication-Info: Submitted using SMTP AUTH LOGIN at fep04-mail.bloor.is.net.cable.rogers.com from [24.156.204.171] using ID <mpredk2559 AT rogers DOT com> at Sun, 28 Dec 2003 02:10:28 -0500
X-IsSubscribed: yes

Hi Folks,

This is my first question to the group, so hopefully I will provide all the
required information.

I'm attempting to build a small programmer interface for Win32 using gcc
under cygwin.  Along with gcc, I have been using gdb running under ddd for
symbolic debugging.

The application is to be based on a dialog box (form) type and so far, I
have put in some pushbuttons and a couple of combobox dropdown lists using
the resource file:

#include "windows.h"

#include "resource.h"

IDD_MYDIALOG DIALOG 6, 21, 153, 88

STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU

CAPTION "Programmer"

FONT 8, "Arial"

BEGIN

  DEFPUSHBUTTON "FILE LOAD", ID_FILE_OPEN, 3, 2, 70, 14, WS_TABSTOP

  DEFPUSHBUTTON "PROGRAM", ID_PROGRAM, 3, 19, 70, 14, WS_TABSTOP

  DEFPUSHBUTTON "VERIFY", ID_VERIFY, 3, 36, 70, 14, WS_TABSTOP

  DEFPUSHBUTTON "BLANK CHECK", ID_BLANK, 3, 53, 70, 14, WS_TABSTOP

  DEFPUSHBUTTON "QUIT", ID_QUIT, 3, 70, 70, 14, WS_TABSTOP

  COMBOBOX ID_PORT, 78, 2, 70, 14, CBS_DROPDOWN | WS_TABSTOP

  COMBOBOX ID_DEVICE, 78, 15, 70, 14, CBS_DROPDOWN | WS_TABSTOP

  LTEXT "Select File to Download into MCU", ID_STATUS, 78, 28, 70, 56,
WS_BORDER

END



To Update the "ID_PORT" comboboxes, I use the following WM_INITDIALOG code:

SendMessage(hdlgPortListCtrl, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)
TEXT("COM1:"));

SendMessage(hdlgPortListCtrl, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)
TEXT("COM2:"));

SendMessage(hdlgPortListCtrl, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)
TEXT("COM3:"));

SendMessage(hdlgPortListCtrl, CB_SETCURSEL, 0, 0);



The resource file and program file compile without any problems using the
following two statements:

windres Programmer.rc -O coff -o Programmer.res
gcc -mwindows -mno-cygwin -g -o Programmer.exe Programmer.c
Programmer.res -lgdi32 -luser32


When I click on the dropdown button on either one of the comboboxes, nothing
happens unless I double click in which case the initial text is highlighted
with a blinking cursor at the end.  Along with this, when I press the "Tab"
key, the focus does not change from button, or control to the next one.  As
I mention below, I have seen one instance of a problem with the combobox on
the list but none on the list indicate the issues with the problem with
tabbing.

To try and find the problem, I ran the resource file through Microsoft's
rc.exe and attempted to bind it to a compiled version of "Programmer.c"
(using the same gcc statement above with "Programmer.res" removed) using
rsrc but I end up with a "Checksum Field != 0" error (which I can't find any
explanation of).

I did a bit level compare on the windres produced .res file and the rc
produced .res file and found that in one of the combobox controls
(ID_DEVICE), the bit pattern was different:

rc:
da 07 ff ff 85 00 00 00 00 00 00 00 00 00 82 50 00 00 00 00 4e 00 1c 00 46
00 38 00
windres:
da 07 ff ff 85 00 00 00 00 00 00 00 00 00 80 50 00 00 00 00 4e 00 1c 00 46
00 38 00

The ID_PORT combobox control's bit pattern was identical between the two
versions.

I changed the corresponding windres .res file to the Microsoft rc .res file
and re-ran the gcc statement above with no difference.

I've just updated my tools to the latest levels from cygwin.com and when I
check the versions of windres and gcc, I get:

$ windres --version
GNU windres 2.14.90 20030901
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.

$ gcc --version
gcc (GCC) 3.3.1 (cygming special)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Looking through the archives, I've noticed that Danny Smith, earlier this
year, has encountered a problem and a potential patch for the windres
processing the combobox under the thread:

"Fix a windres (rcparse.y) parsing bug for controls without text fields"

Hopefully somebody can either:
1.  Tell me this is a problem with windres
2.  Point out what I am doing wrong
3.  Explain what I'm doing wrong with rc.exe so I can dispense with windres
altogether
so I can stop tearing my hair out.

Thanx for your consideration and help!

myke



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019