?
Solved

client program mainly for windows ...

Posted on 2003-11-23
7
Medium Priority
?
578 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
7 Comments
 
LVL 8

Accepted Solution

by:
_corey_ earned 172 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 164 total points
ID: 9808483
0
 
LVL 3

Assisted Solution

by:mh2
mh2 earned 164 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

Get proactive database performance tuning online

At Percona’s web store you can order full Percona Database Performance Audit in minutes. Find out the health of your database, and how to improve it. Pay online with a credit card. Improve your database performance now!

Question has a verified solution.

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

Whether you’re a college noob or a soon-to-be pro, these tips are sure to help you in your journey to becoming a programming ninja and stand out from the crowd.
This article will inform Clients about common and important expectations from the freelancers (Experts) who are looking at your Gig.
An introduction to basic programming syntax in Java by creating a simple program. Viewers can follow the tutorial as they create their first class in Java. Definitions and explanations about each element are given to help prepare viewers for future …
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Suggested Courses
Course of the Month8 days, 10 hours left to enroll

764 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