IonicWind Software

IWBasic => Tutorials => Topic started by: LarryMc on July 06, 2011, 10:25:48 PM

Title: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on July 06, 2011, 10:25:48 PM
Reader comments/questions go here.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Haim on July 07, 2011, 12:08:40 AM
Larry,
Thank you for all your efforts.
It would be very interesting to see how you create a custom control.
Using GDI+ is a an additional benefit.
I am eagerly awaiting your tutorial.
Thanks again,

Haim


Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on July 23, 2011, 07:31:27 PM
Working on preliminary TOC (WIP)

Introduction
Scope
Review
  Windows
  Controls
User's Control Spec
Dynamic Link or Static Library
Development Environment
Control Required Components


Any comments/suggestions are welcome.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on July 28, 2011, 11:36:45 AM
Noone has any questions/comments/requests for clarification?

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: whitenite1 on July 29, 2011, 07:41:37 PM
I'm sorry Larry. I don't really understand IWBasic much, but by reading these sections you're doing, I am getting a better grasp of it. It's kind of hard to ask questions or even ask for clarification, when you're (ie: me) not quite sure what's happening. I do enjoy reading them and learning, as I'm sure many others do also. We thank you...

whitenite1 
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on July 29, 2011, 07:48:26 PM
Nothing to be sorry for.

You should have seen me in the beginning.
( And to people likie Sapero, I'm still at the beginning! :D)

I guess my ego is wanting to think that what I am writing is actually helping someone and not just the incoherent ramblings of an old man. ;)

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: jerryclement on July 29, 2011, 08:52:56 PM
 :)
Larry,
I enjoy reading your tutorials. It helps me to understand better what's going on.  I cannot get enough of the very confusing 'messages' windows use to communicate.  I appreciate your ego's desire to help others!
Thanks,
JerryC
;D
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: whitenite1 on July 29, 2011, 11:26:52 PM
+1  from me also, Larry.
Quote from: jerryclement on July 29, 2011, 08:52:56 PM
:)
Larry,
I enjoy reading your tutorials. It helps me to understand better what's going on.  I cannot get enough of the very confusing 'messages' windows use to communicate.  I appreciate your ego's desire to help others!
Thanks,
JerryC
;D


I really enjoy ALL the Ionic Wind programs I've purchased, and ALL the help I've received from the knowledgeable users.

whitenite1 
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on August 01, 2011, 11:31:26 AM
new post on tutorial will probably be slow this week.. I've got to get all my grand-daughter' stuff packed up (along with a trailer load of furniture) to take to her at her mother's(400 miles one way).  After 7+ years they decided she'll live with her mother and not us anymore.  Anyway, I have to do a litlle and rest a lot.  I'll actually make the drive this coming Saturday.

But as Arnold would say, "I'ull bee backkk!"

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on August 07, 2011, 10:43:19 AM
Well, Fri it took me and my son almost 4 hours to load my truck and low-boy trailer after he got off work Friday.  Besides my bad health what made it really bad was the 104 temperature.  We left @ 4AM Sat morning, drove the 400+ miles; unloaded; visited a few minutes (temp was in the low to mid 90's but the humidity was 95%); then got back in truck and drove the 400+ miles back.  Got home around 6:30PM.  Ate, paid some bills, and was in bed by 9:00pm.  Didn't get up until 9 something this morning and my body aches all over.  I'm too old for that stuff.

Anyway, I will be back to work on the tutorial tomorrow (posting the next section sometime tomorrow).

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Brian on August 07, 2011, 12:37:12 PM
Hey, Larry,

You be careful. I took two of my grandsons to a cave on Tuesday. Was about
a half-mile in, and then back. Sometimes you had to bend double for yards on
end to get through (although it was worth it). Whole trip was about 90
minutes

Then went on to a waterfall, where you could walk behind it. Needless to say,
we got a bit wet...

I didn't know where to put myself for a couple of days - ached in every
bone! Serves me right!

Brian
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: tbohon on August 10, 2011, 07:14:42 PM
Larry:

First take care of yourself ... as we obtain more and more experience in life (my explanation for becoming an old f**t  ;) ) we need to learn to pace ourselves.  Example:  last Saturday I was up at 0500, on site at 0645 to set up a Hamfest for our local Amateur Radio Emergency Service team.  Left there at 1300 and went to a local PetSmart where I'm a volunteer handler for a Greyhound adoption group out of Oregon (I'm in Washington state).  Spent 3+ hours being pulled around by a very energetic and awfully strong 2 yo male named Apollo (brindle, gorgeous and just a love), rushed home to change clothes and de-dogify myself then headed to our county fair to pull a 5+ hour shift as a communications operator in the Sheriff's communications van - sort of the 9-1-1 for the fairgrounds kind of thing.  Got home at 2230 and almost literally collapsed into bed.  I'm still sore and having trouble walking from being on my feet almost continuously for 16 hours straight - and I too know better, trust me.

As to the tutorial you're doing - WOWSERS!!!!!  I'm enjoying reading it and several things that I did but didn't know why I did are now clear ... all as a result of your efforts.  Good job and I'm looking forward to the ebook when the series is over - count me as a purchaser when it's available.

Take care.

Tom
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on August 18, 2011, 08:22:26 AM
Just wanted to say that your tutorial has been enlightening for me.  I have reread it a few times now and have learned new things every time.  May take a few more times before it all sinks in.

Thanks for taking the time and effort for doing this,
Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on August 18, 2011, 08:53:14 AM
Thanks for the kind words.  I just wish I was a better tech writer; and a little faster at it.
Oh well, we'll get there.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on August 18, 2011, 11:02:40 AM
Speed is way less important than good content.  You have excellent content and it is written well enough to be understood, which is also important.

Thanks again,
Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Haim on August 19, 2011, 01:50:23 AM
Great tutorial!
Much appreciated.
Haim
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on August 22, 2011, 12:15:52 PM
Almost had the next section done and had planned on posting it today but....sometimes life gets in the way.
My wife had an uncle pass away Sun morning and we're helping get things done.

Plus, there was some other stuff that came up we had to address.

So, hopefully things will be lined out enough where I can post the next section before the end of the week.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Brian on August 22, 2011, 12:30:00 PM
Larry,

You take your time. I've been steadily going through your posts, and have found it great
reading and easy to understand, even for me!

Brian
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on August 25, 2011, 09:56:45 AM
Great work !

Finally a tutorial for IWBasic which makes some things clearer to me . I have to reread it again and again to fully understand it . Will take some time til everything reaches my little casual programmer brain  ;)

Richard
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 02, 2011, 03:36:24 PM
The section that is coming up - Graphics Review - is going to be, for me, the hardest part to explain in a simple form.

So this is a heads up that it may take me a little while to get my thoughts (and wording) squared away.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 06, 2011, 09:18:53 AM
As it turned out, it wasn't that hard after all.
That is, provided readers understand what i wrote.

I'm still open for any questions.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on September 06, 2011, 10:17:26 AM
I'm reading your tut with german subtitles in my brain but I understand what you write, Larry  ;D

Thanks for your efforts !

Richard

Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: John S on September 10, 2011, 10:16:55 PM
here is the whole thing to date in pdf format - enjoy
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on September 18, 2011, 04:44:37 AM
Larry,
while the project of part 7 compiled perfect, the project of part 8 shows odd behavior. Compiling it sometimes it shows only the empty Gage Demo window, sometimes I see one control with a red pointer, sometimes I see ten controls like in part 7 but only a red circle in the center of each control .

Richard
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 09:49:03 AM
Obviously it compiles fine for me, every time.  So here's the questions:
1. You're talking about the zipped project whose src files have -Part08 in the file names, right?
2. You made no changes in the files?
3. What version of IWBasic are you using? (latest is 2.09 compiler 2.095)
4. what type of OS?
5. What option flags do you have set in the IDE?

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on September 18, 2011, 10:20:44 AM
1. YES
2. NO
3. Latest is 2.09 compiler 2.095
4. Win7 x64
5. Zero local variables

Richard

Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 10:35:35 AM
Idential setup to me???

Attached here is new zip of files  plus the exe.

before compiling with this run the exe multiple times and see if it is okay for you.
then try compiling these files.

LarryMc

edit - would help it I added the attachment!
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on September 18, 2011, 10:53:34 AM
Doesn't work here. Neither the exe file nor the compiled project.
Both the exe and the compiled project show the white empty window.

Richard
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: whitenite1 on September 18, 2011, 11:22:06 AM
Larry, I too, just get a white box when I run your exe file from the zip. I also am running the latest version of IWBasic, v2.095 and have Windows 7 x64. I haven't tried compiling it, though.

whitenite1

EDIT:
  I tried compiling and came up with errors
First it says 'No errors', but upon linking, I get..
Unresolved extern CreateGageRLM
Unresolved extern ConfigGageRLM
Unresolved extern SetGagePos1RLM
Unresolved extern SetGagePos2RLM

Hope this helps
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on September 18, 2011, 11:53:05 AM
Larry,
this is the output of a debug build :

QuoteStarting debug session...
Loading DLL: ntdll.dll
Loading DLL: C:\Windows\syswow64\kernel32.dll
Loading DLL: C:\Windows\syswow64\KERNELBASE.dll
Loading DLL: C:\Windows\syswow64\USER32.DLL
Loading DLL: C:\Windows\syswow64\GDI32.dll
Loading DLL: C:\Windows\syswow64\LPK.dll
Loading DLL: C:\Windows\syswow64\USP10.dll
Loading DLL: C:\Windows\syswow64\msvcrt.dll
Loading DLL: C:\Windows\syswow64\ADVAPI32.dll
Loading DLL: C:\Windows\SysWOW64\sechost.dll
Loading DLL: C:\Windows\syswow64\RPCRT4.dll
Loading DLL: C:\Windows\syswow64\SspiCli.dll
Loading DLL: C:\Windows\syswow64\CRYPTBASE.dll
Loading DLL: C:\Windows\syswow64\OLE32.DLL
Loading DLL: C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1dfw
Loading DLL: C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b641w
Loading DLL: C:\Windows\SysWOW64\CRTDLL.DLL
Loading DLL: C:\Windows\SysWOW64\IMM32.DLL
Loading DLL: C:\Windows\syswow64\MSCTF.dll
Loading DLL: C:\Program Files\CheckPoint\ZAForceField\WOW64\Plugins\ISWSHEX.dr
Loading DLL: C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50v
Loading DLL: C:\Windows\syswow64\WINTRUST.dll
Loading DLL: C:\Windows\syswow64\CRYPT32.dll
Loading DLL: C:\Windows\syswow64\MSASN1.dll
Loading DLL: C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50v
Loading DLL: C:\Windows\SysWOW64\ntmarta.dll
Loading DLL: C:\Windows\syswow64\WLDAP32.dll
Loading DLL: C:\Program Files\CheckPoint\ZAForceField\WOW64\AK\icsak.dll
First chance exception: Address 0x75F3B9BC Unknown Exception
Loading DLL: C:\Windows\syswow64\PSAPI.DLL
Loading DLL: C:\Windows\SysWOW64\uxtheme.dll
Loading DLL: C:\Windows\SysWOW64\dwmapi.dll
Loading DLL: C:\Windows\syswow64\shell32.dll
Loading DLL: C:\Windows\syswow64\SHLWAPI.dll
Loading DLL: C:\Windows\SysWOW64\ole32.dll
First chance exception: Address 0x03A87ACA Access Violation.
First chance exception: Address 0x039E2724 Access Violation.
First chance exception: Address 0x03A87AD0 Attempt to execute Privileged Instruction
Loading DLL: C:\Windows\syswow64\OLEAUT32.DLL
First chance exception: Address 0x03A87ACE Access Violation.
First chance exception: Address 0x03A84978 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A84978 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A865AC Access Violation.
First chance exception: Address 0x03A865AB Access Violation.
First chance exception: Address 0x03A865AB Access Violation.
First chance exception: Address 0x03A865AB Access Violation.
First chance exception: Address 0x03A865AB Access Violation.
First chance exception: Address 0x03A865AB Access Violation.
First chance exception: Address 0x03A865AB Access Violation.
First chance exception: Address 0x03A865AD Access Violation.
First chance exception: Address 0x03A865AD Access Violation.
First chance exception: Address 0x03A01FA8 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A01FA0 Unknown Exception
First chance exception: Address 0x03A01FA0 Unknown Exception
First chance exception: Address 0x03A01FA0 Unknown Exception
First chance exception: Address 0x03A01FA0 Unknown Exception
First chance exception: Address 0x03A01FA0 Unknown Exception
First chance exception: Address 0x03A01FA0 Unknown Exception
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A88870 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A01DC8 Access Violation.
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A895FC Access Violation.
First chance exception: Address 0x03A895FC Access Violation.
First chance exception: Address 0x03A895FC Access Violation.
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A88878 Attempt to execute Privileged Instruction
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A998B9 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A89603 Unknown Exception
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A948E4 Access Violation.
First chance exception: Address 0x03A97CE1 Unknown Exception
First chance exception: Address 0x03A97CE1 Unknown Exception
First chance exception: Address 0x03A97CE1 Unknown Exception
First chance exception: Address 0x03A97CE1 Unknown Exception
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9A7A0 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9C218 Access Violation.
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03A9F5D1 Unknown Exception
First chance exception: Address 0x03AA28E1 Unknown Exception
First chance exception: Address 0x03AA28E1 Unknown Exception
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A99982 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03A9C648 Access Violation.
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA4811 Unknown Exception
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA7965 Access Violation.
First chance exception: Address 0x03AA83C5 Unknown Exception
First chance exception: Address 0x03AA83C5 Unknown Exception
First chance exception: Address 0x03AA83C5 Unknown Exception
First chance exception: Address 0x03AA9300 Access Violation.
First chance exception: Address 0x03AA9300 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AAA6A8 Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB06CA Access Violation.
First chance exception: Address 0x03AB3331 Unknown Exception
First chance exception: Address 0x03A9D8C2 Access Violation.

Richard
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 12:03:33 PM
I compiled in debug and got none of those exceptions.

I changed something in the attached.

would appreciate ya'll trying the exe and then compile as before.

BTW, did either of you try running it as admin?

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 12:05:08 PM
also ya'll installed IWB as admins

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: whitenite1 on September 18, 2011, 01:26:00 PM
Larry..
  I went to the directory on the desktop, right-clicked on IWB2 and in the menu, clicked on 'Run as Admin'. Went to the menu in IWB2, selected 'Open Project', and opened 'CCT' that I just downloaded from your last message. Clicked on 'Compile' as Window. It compiled and ran, but all that I see is still a white window. But at least I received no errors. Though, previously, I tried compiling 'CCT_test-Part08.iwb' by itself, which may be the reason for the errors I received.
  And yes, I did install the program as 'admin'.

whitenite1
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 01:40:19 PM
did you try running the exe that was in the zip file first to see if it worked?
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 18, 2011, 02:34:49 PM
I tried running CCT.exe and I get the MS Error (encountered problem, Send Error Report/Don't Send), with basically a blank screen.

Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: whitenite1 on September 18, 2011, 02:40:04 PM
Larry, Yes I first tried running the exe as Admin, with the same results as I had before. A white screen with the title 'Gage Demo', and the menu with the 'Quit' option.

whitenite1
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 02:46:17 PM
in your IWbdev/libs dir do ya'll have a gdiplus.lib?

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 18, 2011, 03:00:48 PM
I have one.  Running Win XP SP3.  I have loaded all Sapero's includes.  I got it to compile, but it aborts on me (Windows abort).

Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 04:05:43 PM
I can't figure out what I have different than you guys.
Cause it never hiccups for me.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 07:09:27 PM
There's some good news and some bad news.

The good news is that I've duplicated what you guys are seeing and it isn't anything ya'll are doing wrong.
The bad news is I have no idea right now what the source of the problem is.

How I duplicated it was to download the latest version of IWB and install it in a virgin folder.
That got rid of all the stuff I've accumlated over the years in my bin, include, and lib folders.
It wouldn't compile because windowssdk.inc was missing. So I downloaded the May 5, 2011 version on Sapero's installer.

I then compiled the part08 project.
The first time I got the white screen.
I shut it down and recompiled.
When I ran it it would flash on and then close immediately.

I closed the IDE and reopened it
I set the DEBUG flag for the project.
Now when I would compile and run I would get the ton of exception errors AND  there would be different portions of the gages showing each time compiled and reran it.

I think that pretty much covers all the variations everyone has seen.

So, obviously, the tutorial will come to a screeching halt until I can get this resolved.

Thanks to all of you for working with me on it.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 09:19:25 PM
Would appreciate you guys trying to run the exe and then compile and run the attached WITHOUT debug.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: RitchieF on September 18, 2011, 09:31:43 PM
Larry  ;D

Both working fine here. Exe and compiled project show all controls and pointers .

Thanks

Richard
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 18, 2011, 09:46:34 PM
Quote from: RitchieF on September 18, 2011, 09:31:43 PM
Larry  ;D

Both working fine here. Exe and compiled project show all controls and pointers .

Thanks

Richard

No, thank you guys

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: whitenite1 on September 18, 2011, 10:13:19 PM
Larry..
  Download the new and improved version. Ran it, and saw beautiful gauges with moving red dials. Great work..  So, what was wrong with the other version?

whitenite
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 18, 2011, 11:29:52 PM
Downloaded b version and original EXE works and after recompiling, it still works.

Very impressive.

Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Pip1957 on September 19, 2011, 02:37:54 AM
Larry

no flags set
win7 64bit
latest iwb

cct7 works fine.
cct8 blank window with the menu, no compile errors.

downloaded your latest and all worked ok.
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Brian on September 19, 2011, 12:04:24 PM
Larry,

The CCT.exe runs fine, but when I try to compile, I get this:

Compiling...
CCT_lib-Part08.iwb
File: C:\Documents and Settings\All Users\Documents\IWBasic\projects\cct\CCT_lib-Part08.iwb (117) Error: Undefined function RGBA
File: C:\Documents and Settings\All Users\Documents\IWBasic\projects\cct\CCT_lib-Part08.iwb (118) Error: Undefined function RGBA
File: C:\Documents and Settings\All Users\Documents\IWBasic\projects\cct\CCT_lib-Part08.iwb (171) Error: Undefined function RGBA
Error(s) in compiling "C:\Documents and Settings\All Users\Documents\IWBasic\projects\cct\CCT_lib-Part08.iwb"
CCT_test-Part08.iwb
Build Failed

Also made sure I have gdiplus.lib in there

Brian (Win XP SP3)
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 19, 2011, 12:35:35 PM
Brian,
The RGBA function is a function built into IWBasic's 3D lib and has been a part of IWB/EB ever since the 3D library was added..
Has nothing to do with anything I'm doing.
I don't know what to tell you other than to reinstall the latest version of IWB.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 19, 2011, 12:43:09 PM
Need one or more tester's for that attached exe file
Due to the other problems I had I want to make sure this works before I go explaining the code in the tutorial.

If you run it you should see the 10 gages with grey boxes around them on a white window.
If you depress your left mousebutton while inside a gage the box will turn red.
When you let the mouse button up the red will turn white to match the window color.
No more grey box.

This will be used to demonstrate how events that happen to our control(mouse click) is reported to the parent window.

Thanks in advance for the help.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Rock Ridge Farm (Larry) on September 19, 2011, 12:50:13 PM
works for me - Win 7 ultimate
amd triple core 4G mem

Larry

Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 19, 2011, 12:56:37 PM
Interesting note:  I recompiled a program, then I used another one of my programs that I copy from where the program gets compiled to move it to where I want it to be run from.  When I tried the copy right after the recompile, my program said it could not find the new exe.  When I closed the Compiler and then loaded it back up and the ran the copy it worked ok.

Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Brian on September 19, 2011, 03:49:02 PM
Larry - sorry, my mistake - I didn't have all the Command Paks selected

Brian
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: Pip1957 on September 19, 2011, 04:58:23 PM
Worked as described

Win7 64bit I7 Quad 6 gig mem
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 19, 2011, 05:11:12 PM
OK, thanks to all for testing

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: jerryclement on September 19, 2011, 05:28:34 PM
 ;)
Works okay on my 4 core 3.2 ghz 8gig win7 computer Larry
JerryC
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 20, 2011, 11:00:32 AM
Just a little off topic, however, since you are teaching, this might be of use to know.  I know you prefer to use Sapero's Includes, what I was wondering.  Do all the defines and stuff get included in your program, also does it add more time to the compiles?  I wonder this, because I would think it would be better to add in only what you need without all the other overhead.  Which is why when I create a program, I do my own defines and etc.  But, if it does not make that much difference, then I will just start adding in the includes.

Thanks,
Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 20, 2011, 01:53:57 PM
The CCT_Demo.iwb file has the include in it but it is not really needed.
I compiled with and without the include.
The resulting file size of the exe's were identical.

It has to take longer if the include is there because it has to be processed.
But the demo compiles so fast I really can't see the difference.

To me, when you compare any additional time it takes to compile with the include pales in comparison to the amount of time spent locating and typing in the proper declaration.  But again, it is just a strong personal preference of mine.

Not to mention it reduces the size of your source files.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 20, 2011, 08:48:40 PM
Thanks for the info.

Now for the next question.  Where do you find the declares and a definition of what they are capable of doing?  Is there maybe a site that has them defined and their uses?  I know that there are lots of them defined in the includes and was just wondering what some of them do and how they can be used.

Thanks,
Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 20, 2011, 10:30:44 PM
For the GDI+ stuff I use what forum member Jose Roca has on his site.  Although it is for another basic it has a lot of useful info.

http://www.jose.it-berater.org/gdiplus/iframe/index.htm

For the windows stuff in general you can download the Windows SDK here:

http://en.wikipedia.org/wiki/Microsoft_Windows_SDK

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 21, 2011, 05:33:11 PM
Another little side track.  My wife needs a program that pulls information out of my family history software so she can search for partial names, parents, and siblings.  We're trying to get all the pictures we have scanned and labeled with the correct names before we're gone.  If we don't get it done  then when we're gone about a third of the pictures become worthless.

May take me a few days to get it done and then I'll be back finishing up the tuorial.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: billhsln on September 21, 2011, 08:27:53 PM
There is a neat little graphic utility called ImageMagick, it will allow you to put words into a picture.  Might make your job easier.

Bill
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 21, 2011, 09:23:29 PM
She's using Windows Live Gallery which makes it super easy.
And she can click on a persons name in a menu and it will find all the images with that person in them.

LarryMc
Title: Re: COMMENTS: Create a custom control (using the GDI+ Flat api)
Post by: LarryMc on September 25, 2011, 10:39:09 AM
OK, got wife's program done. Now back to the tutorial today (between football games ;D)

LarryMc