Solved

client program mainly for windows ...

Posted on 2003-11-23
7
573 Views
Last Modified: 2010-04-17
I want to make a client program that is supposed to work on all newer kind of windows operating systems (from w95 to windows XP). In the long run, I want the program to run on all kind of operating sysems that common people use, like BSD, linux, mac and so on, but first to the windows part.

      1) How do I make a windows-program that show up as an icon to the right in the bottom panel (where the printer icon and other icons are  ...)?
      2) How do I make the program GUI jump up when I double click it and how do I get it down?
      3) How do I make it contain a bunch of tabs in the top?
      4) Since I later on want to port this, would C/C++ be the best way of solving it? And how do I best separate the OS:spec parts from the common stuff?

A source template would be nice
0
Comment
Question by:mdoland
  • 2
7 Comments
 
LVL 8

Accepted Solution

by:
_corey_ earned 43 total points
ID: 9807256
I would probably suggest looking into something like

www.trolltech.com Qt
0
 
LVL 48

Assisted Solution

by:AlexFM
AlexFM earned 41 total points
ID: 9808483
0
 
LVL 3

Assisted Solution

by:mh2
mh2 earned 41 total points
ID: 9817585

1. Windows only: Look into the function Shell_NotifyIcon(...) in your MSDN.

2. Windows only: [take this with a pinch of salt, I'm not 100% sure]
    Keep track of your applications status, set a boolean variable when it is in tool tray state.
    Add a message handler for WM_LBUTTONDBLCLK
    Use ShowWindow(..) to display your window back in the normal state

3. Windows only: "In the top" I assume you mean along the top edge of your window? The Tab control should do the trick here, but if your window is not a dialog (drawn in GUI) you'll have to create it programatically.

4. Yes, C++ is your best choice here IMHO to be portable. BUT you must be _very_ careful not to use _any_ OS specific calls in your main application API, use only C++ standard calls and code (for example, don't use __declspec(property)). Unless you use a toolkit such as QT you will also have to make several indepedant versions of your UI, as the help given above by me is for Windows only. To be cross-platform, you will need to handle your tool tray differently (does your target platform even have the concept of a "tool tray" is a question needed to be asked?)

What you must do is seperate your application into business logic and GUI logic. The business logic must handle all functionality in your application. The GUI code must _only_ be an event processor, and must use these "business" classes to do the real work. This way you can build these "business logic" into a .dll/.so whatever and link it to your chosen front-end. So you make a front-end implementation in MFC, and one for say Linux in Gnome, both handle an event, say a form with data capture. Upon clicking say a "Save" button, they collect the data in the form into a standard object/format as defined by your "business logic", then pass this to an object in your common code for validation and saving to database.

As you can imagine, developing a truly cross-platform application is a tricky task. There is no one "source template" that can tell you how to architecture your application.
0
 
LVL 48

Expert Comment

by:AlexFM
ID: 10319523
I think points should be splitted.
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Whether you've completed a degree in computer sciences or you're a self-taught programmer, writing your first lines of code in the real world is always a challenge. Here are some of the most common pitfalls for new programmers.
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question