i'm a graphic designer by profession and i have just recently got interested in having my eyeballs roll in opposite directions by pumping win32 asm code into my head. i also have some experience (even earned some $$) with vc++ (mfc) so only in learning asm did i realize that 'real' programming was this fun (or painful). what i'm interested in now is coming with cool-looking 'skeletons', ala sonique and window mplayer7, only faster. i'm bored with the usual look of the windows ui (click-next-finish w/ mfc) and i want to make some nicer looking ones. i'm a total newbie (6 weeks old), so all help will be highly appreciated.
I hate to break this to you, but you have to know how to crawl before you can walk. ASM *might* seem easier then C++ (it sure does to me), but you still have the hill to climb learning the windows API. Without a deep understanding of this API (or at least a flavor of what it does so you can do short searches) you'll get nowhere. I strongly suggest you read as many of Iczelion's tutorials as you can stand. He's an excellent teacher in the groundwork. Once you have THAT down, try coding something simple as your first project (mine was a kitchen timer). After that seems like a trivial exarcize, when youe head is full of "this is how I'd do..." thoughts, THEN think about coding the coolest something player or whatever.
thanks for the advice, ernie. i do have all of iczelion's tutorials and your kitchen timer source code. of course i can make my own copy of that prog, but to really understand what's going on is the most painful part. may i know how long it took for you guys to be where you are now? hope i can be good at this before i'm 50.
You got my SOURCE for Timer? AGGGGHHHH!!! I never released that, cause it's a mish-mash of all kinds of hacks. Hey, it was my FIRST program in asm. AGGGGG!! ---------------------- "Marge, donít discourage the boy. Weaseling out of things is important to learn. Itís what separates us from the animals except the weasel."
Hello, I've just read your threads ppl. pixelwise - I also hate the old UI-model of windows! Its boring and sometimes stressing... I am always looking for some ppl, that are thinking in the same way. I always find interesting texts about coding on www.hugi.de (there is also an english part) HUGI is an ezine about coding demos and such things. There are a lot of ppl, that code gfx-things in assembler - mostly using directx or opengl. If that helps you ... If you have some ideas about new kinds of UIs, let me know!!! Greetz, kniph0
ernie, i was really surprised by your reaction. as proof, here's the link to the file ... CAPTION.zip. sorry, my mistake. it was the graphic you used for Timer, right? just had one confused with the other. anyway, what i was saying is, give me a test_department-style code and i can 'translate' it to iczelion-style code. piece of cake. but still i can't seem to grasp what's really going on between those busses and registers and memory locations. anyway, i'm drifting away from the ui topic. ===================== kniph0, what i actually tried to do for weeks was attemp some silly albeit painful hacks, disassembly, and all kinds of binary acrobatics on ms mplayer 7 and sonique media player. needless to say, it got me nowhere (good thing there's this nice rolling-eyeballs face in this board to remind me how dumb i look). that's why i posted on this board, hoping that someone could enlighten me and show me the right path. i think ernie hit the spot when he mentioned crawl-before-you-walk. sometimes, too much excitement just makes us miss the obvious. i had a similar experience when i once taught somebody to play the guitar lead part of sweet child o' mine for a month, only to find at when he got good at it that he can't strum chords. if you see what i mean, it's really silly, right? well, i think i'll be sticking to what ernie says for now. it has always worked in any field, anyway. i don't know how far you are with win32 asm, buy if you're like me (now 7 weeks old), i think it's best you also do the same. i checked hugi and it's impressive. made me feel that i am this small spectator once again. but i'm gonna be there someday...
pixelwise, UI stuff is almost exclusively grinding hack work that depends on understanding the way different windows work and interact. You can write custom controls, skins, direct image placement with an API like BitBlt and many other tricks but you will have to learn the API functions well to get the swing of how to do this stuff. I have been at windows API code for 11 years, started in C with the 16 bit SDK about 1990 when it was really hard going but when it sinks in, it tends to stay there. No-one can know all of this stuff so having the reference material available is important. WIN32.HLP is a lot faster to use and it has most of the basic stuff in it. More advanced code requires MSDN CDs but it is in HTML format which is slower to find your way around. Usual translation from C to asm is required but in most instances, you can assume the parameters and return value is in DWORD size. Your experience in C++ should have helped some but be aware that low level asm and API code is not OOP oriented, it can be written that way but it takes a lot of practice. Just keep doing what you are doing now, concentrate on basic windows capacity in API code, learn your mnemonics and you are on your way to writing small, fast code in assembler. Good Luck, firstname.lastname@example.org
thanks a lot hutch. now that's two gurus giving me basically the same advice. i don't think i'm stupid enough to do otherwise. i think that means no fancy stuff for now, just pure and simple win32 api and basic asm mnemonics. i agree that would give me the right solid foundation later on. while i'm at it, i'd like to ask one more question. i'm doing an mdi app now which might be a good skeleton for a source code editor. it has a modeless dialog box with tabbed tree controls, much like vc++ workspace (i hope). i used WM_SIZE in WndProc to size and position the dialog box relative to the main FrmWnd and it worked fine. however, i can't seem to use the same routine within the DlgProc's WM_SIZE to position and size the tree control windows. the prog compiles ok but i get the blue screen when i run it. why is that? can't i use the same message in different procedures at the same time? thanks again in advance. i did my best searching through the threads to find a similar question but there was none. like all newbies here, the last thing i want is to ask is a stupid question. of course, with guys like you around, we relatively are. but let's just keep that secret, ok?
take a look at entro-P 's work on Iczelions' site about how to make and apply custom skins. It's really cool. As for making custom shapes, there's also an example about that on Iczelions site. (made by me and Iczelion) combine these and you probably will have what you want :)
I recently wrote a progra with a custom window much like Hiroshimator's example on Iczelions site. However mine didn't used a built in routine to create the region. I used a program called RGN Generator. Anyway I'm just wondering if any has any idea as to which is better. Ps I can email the zip package to anyone if you want it. Its not mine, origionally someone emailed it to me from this board.
pixelwise, Ahh, yes, I did release that, and yes, it's the same bitmap as in the timer app. I was kiddin with ya there. I'd orgionally intended a series to 1) explain the tricks in timer (it's just a single window, the "buttons" and displays are just code), and 2) to rewrite it properly. However, I got bored in about step 1.6, and went onto other things. Hey, I got my timer, my food doesn't burn anymore. ;-) ----------------------- "Look, Marge, Iím sorry I havenít been a better husband, Iím sorry about the time I tried to make gravy in the bathtub, Iím sorry I used your wedding dress to wax the car, and Iím sorry -- oh well, letís just say Iím sorry for the whole marriage up to this point."