What are you using for drums?
If you're using BFD3 or something like it, then programming hihats should be as simple as adding the velocity events in once you get the timing right. If you keep all the hat events at the same velocity they'll never sound realistic.
Regarding cymbals, it sounds like you're talking about hearing a loud initial attack, then a quickly dying cymbal. What that indicates is that 1) you're using short or cheesey cymbal samples, or 2) you're using good samples but you may not be processing the kit in an appropriate way. Example: if you're doing a rock track, it's a good idea to send all of your drums to a Drum Buss in Sonar. On that buss, I'd include a buss compressor, and probably some EQ (if not additional processing). The compressor is the key here, as what happens is that when a cymbal is struck, there's often a kick underneath it. The kick will actually cause the compressor to duck, which takes out some of the attack of the cymbal, and causes the body of the cymbal to sound like it's sustained. The more compression, the more extreme the effect. Again, though, having good cymbal samples are key to this working.
Now repeated cymbal hits (a drummer riding on a crash for instance) is a little different. The attack of each sample often comes through loud and clear in a very fake way. BFD3 is especially good at repeated cymbal hits due to the cymbal swell modelling. What it does is actually simulates the swelling effect a cymbal has when repeatedly struck, this makes the cymbals sound more washy (in a good way) and less static on repeated hits. As far as I know, it's the only drum software to do this.